사람들이 git과 github의 개념을 종종 혼동하기도 한다. 나조차도 git과 github에 대해 단지 어떤 홈페이지에 소드 코드를 올려 사람들과 같이 공유, 관리를 하는 도구로 굉장히 애매모호하게 뭉뚱 그려 머릿 속에 담고 있었다. 앞으로는 제대로 git과 github를 이해하고 사용해야 개발자로서 그리고 협업하는 동료로서 좋은 결과를 낼 수 있을 것 같아 이번 포스팅을 하기로 결정했다.
git이란 소스의 버전을 분산 관리 해주는 시스템. github는 보이지 않는 git의 소스 코드를 좀 더 직관적으로 관리할 수 있도록 돕는 무료 git 저장소이다. git은 개발자들이 개발한 코드들의 버전을 분산해서 관리하도록 하는 것이고, github를 통해 그 소스 코드들을 보고 다운 받아 볼 수 있기에 관리하는 데에 사용된다.
git과 github만 이해한다 한 들, 이걸 도대체 개발하는 데에 왜 쓰는 거야? 라는 생각이 들기도 한다. 한 프로젝트를 하는 경우, 여러 개발자들이 분업을 하기 때문에 나중에 따로 만든 일부분을 전체 메인 branch에 합치는 과정을 통해 일단 각자 만든 코드들이 충돌하지 않도록 branch를 따로 둬서(분산) 관리한다.
local directory를 git이 사용할 수 있도록 초기화 시켜주는 명령어
$ git init
git init 후, local directory와 원격저장소(remote repository)를 연결 시켜준다. git clone과는 달리 원격 저장소 이름을 origin이 아닌 다른 것으로 설정할 수 있다.
$ git remote add origin
$ git remote add original
github에 생성한 repository를 복제해 오는 명령어. .git을 생성하고 싶은 local directory에서 명령어를 사용하면 자동으로 .git이 생성되며 원격저장소와 연결된다. 원격저장소 이름은 자동으로 origin이 된다.
$ git clone <원격저장소url(github repository url)>
stage 영역에 넣어주는 것으로 git이 push를 할 준비를 할 수 있도록 tracking 시켜준다. 명령어 뒤에 파일 이름들을 나열할 수 있지만 .으로 해당 directory의 모든 파일들을 tracking 시킬 수 있다.
$ git add <파일 이름들 혹은 .>
수정된 사항을 스냅샷을 찍듯 git에 기록하는 명령어. 메시지를 추가할 수 있어 해당 변경 사항에 대한 대략적인 내용을 기록할 수 있다.
$ git commit -m '변경 사항 내용'
$ git commit
두 번째 명령어에 enter 키를 누르면 더 긴 텍스트로 변경사항에 대한 기록을 할 수 있다.
원격저장소에 add, commit이 완료된 파일들을 올리는 명령어
$ git push <원격저장소이름> <branch 이름>
push와는 반대로 원격저장소에 있는 파일들을 branch로 끌어 당겨와서 갱신하는 명령어
$ git pull <원격저장소이름> <branch 이름>
$ git branch <branch이름>
생성된 branch들과 현재 있는 branch를 확인할 수 있다.
$ git branch
다른 브랜치로 이동할 수 있는 명령어
$ git checkout <이동하고 싶은 branch이름>
$ git branch -d <branch 이름>