Git Session이 진행됐다.
Git과 Github에 대한 핵심적인 내용을 간략하게 설명하고,
내 local computer에서 깃을 통해 저장한 자료를
Terminal을 통해 Github에 올리는 작업을 간단하게 실습했다.
깃은 버전관리 시스템이다.
로컬 컴퓨터에 깃 프로그램이 설치되어 있으면 인터넷 없이도 사용할 수 있는 기능이다.
버전관리 시스템을 이용하는 이유는 여러가지가 있지만,
그 중 다음 4개가 핵심적이다.
git 명령어 중 git blame과 git diff가 있다.
git blame 명령을 통해 파일 수정 히스토리를 확인하고,
git diff 명령을 통해 변경사항을 확인한다.
깃허브는:
git을 사용한 프로젝트들의 저장소이다.
이 저장소의 내용을 전세계 사람들이 공유하기 때문에 인터넷이 필요하다.
저장소 공유를 기반으로 해서 협업을 원할하게 할 수 있다.
개발자들의 social network이다.
개발자는 다른 산업군과 다르게 자기가 만든 코드는 자랑하고 공유하면서 pool을 키워가는 문화가 있다.
따라서 그런 자랑과 공유를 할 공간이 필요한데, 깃허브가 현재 그런 역할을 하고 있다.
커뮤니티에서 오픈소스를 공유하면서 만들어진 DB가 MySQL이다.
즉, Git은 프로젝트의 버전 관리를 도와주는 '시스템'이고,
GitHub는 그 버전 관리를 저장하는 '저장소'이다.
(git이 설치되어 있는 터미널을 기준으로 작성한 글이다.)
원하는 곳으로 이동한다.
cd desktop
깃허브에 공유하고 싶은 폴더을 생성한다.
mkdir wecode
(wecode는 폴더이름이다. 아무거나 작성하면 됌)
그 폴더로 이동한다.
cd .wecode
(생략가능) 4. 현재 폴더 위치를 확인하고 pwd
, 파일이 있는지 확인한다 ls
.
새로운 깃 리파지토리를 생성한다.
git init
그러면 다음과 같은 문구가 뜬다. /Users/eunjinbaek/Desktop/wecode/.git/ 안의 기존 깃 저장소를 다시 초기화했습니다
vim을 통해 파일을 생성한다.
vim jinniebaek.md
(어떤 파일이던 생성 및 코드작성 가능.)
(md는 마크다운 확장자로, 일반 마크업 언어에 비해 문법이 쉽고 간단해서 README 파일 및 온라인 게시물 등에 많이 사용된다.)
6.1. i 를 입력하면 맨 아래 ---insert---가 뜨면서 코드를 입력할 수 있다.
코드를 모두 작성했으면, esc키
를 누르고 :wq
를 입력한다.
git 파일 등이 생성되었는 지 확인한다.
ls -al
(-al을 붙이면 숨겨진 파일도 모두 확인된다.)
git의 현재 상태를 확인한다.
git status
아래 현재 브랜치와 (대게 master) 빨간색 파일들이 확인된다. 아직 커밋이 되지 않은 상태인 것이다.
내 파일들을 git에 추가한다.
git add .
<- 모든 파일 추가하기
git add 파일이름
<- 특정 파일 추가하기
git 파일을 commit하면서, 메세지를 추가한다.
(여기까지는 local computer에서 진행되는 내용이다. 즉, 인터넷 불필요)
git commit -m "간단한 소개글"
깃허브에서 새로운 리파지토리를 생성한다.
다음과 같은 페이지가 나타난다.
1 번은 내 컴퓨터에서 아직 특정 파일을 만들어놓지 않았을 경우,
2 번은 내 컴퓨터에서 특정 파일을 만들어 놓았을 경우,
3 번은 다른 리파지토리에서 코드를 import 할 경우.
나는 이미 wecode
라는 파일을 만들고, 깃도 연결을 해두었기 때문에 2 번을 진행했다.
git remote add origin https://github.com/JeanBaek/git-session-test.git
1.1. (생략했음) 테스트용이라 어차피 master 브랜치밖에 없어서 두 번째 줄은 진행하지 않았다.
git remote -v
origin https://github.com/JeanBaek/git-session-test.git (fetch)
origin https://github.com/JeanBaek/git-session-test.git (push)
git push -u origin master
다음 문구가 확인된다.
오브젝트 나열하는 중: 3, 완료.
오브젝트 개수 세는 중: 100% (3/3), 완료.
오브젝트 쓰는 중: 100% (3/3), 239 bytes | 239.00 KiB/s, 완료.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/JeanBaek/git-session-test.git
* [new branch] master -> master
'master' 브랜치가 리모트의 'master' 브랜치를 ('origin'에서) 따라가도록 설정되었습니다.
git status
현재 브랜치 master
브랜치가 'origin/master'에 맞게 업데이트된 상태입니다.
커밋할 사항 없음, 작업 폴더 깨끗함
혼자 할 때는 너무 복잡하고 머리가 아팠던 일들이, 세션을 들으면서 여러 멘토님들, 동기님들과 함께하니까 생각보다 쉽게 진행되었다.
이제 깃허브 데스크탑 프로그램이나, 깃허브 홈페이지에서 버튼으로 commit하지 않고,
개발자답게 터미널로 commit 해야겠다. 😁