Git을 사용한 버젼 관리

협업

학습 목표

  • 공동 저장소로 푸쉬해서 협업한다.

다음 단계로, 짝을 짖는다. 한 사람이 “소유자”(연습을 시작하는데 사용될 GitHub 저장소 주인)가 되고, 다른 사람이 “협력자”(소유자 저장소를 복제해서 변경을 하는 사람)가 된다.

소유자가 협력자에게 접근권한을 부여할 필요가 있다. GitHub에서 오른쪽에 ‘setting’ 버튼을 클릭해서 협력자 사용자이름을 입력한다.

GitHub에 협력자 추가

GitHub에 협력자 추가

협력자는 로컬 컴퓨터에서 해당 프로젝트 작업을 수행할 필요가 있다. cd 명령어로 또 다른 디렉토리로 가서 (ls 명령어로 planets 폴더를 볼 수 없다.), 소유자 저장소 사본을 만든다:

$ git clone https://github.com/vlad/planets.git

’vlad’를 소유자 사용자이름(저장소를 소유하고 있는 사람)으로 바꾼다.

git clone 명령어는 원격 저장소와 동일한 새로운 로컬 사본을 생성한다.

저장소 복제를 생성한 후

저장소 복제를 생성한 후

이제 새로운 협력자가 자신의 저장소에 변경사항을 만들 수 있다:

$ cd planets
$ nano pluto.txt
$ cat pluto.txt
It is so a planet!
$ git add pluto.txt
$ git commit -m "Some notes about Pluto"
 1 file changed, 1 insertion(+)
 create mode 100644 pluto.txt

그리고, 변경사항을 GitHub에 푸쉬한다:

$ git push origin master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 306 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/vlad/planets.git
   9272da5..29aba7c  master -> master

주목할 점은 origin 이라는 원격 저장소를 생성할 필요는 없다: 저장소를 복제(clone)할때 사용한 이름을 Git이 자동으로 사용해서 수행한다. (수작업으로 원격 설정을 할 때, 앞에서 왜 origin 이름을 사용한 것이 현명한 선택인 이유다.)

이제 우리의 컴퓨터에 GitHub 원본 저장소의 변경사항을 다운로드할 수 있다:

$ git pull origin master
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://github.com/vlad/planets
 * branch            master     -> FETCH_HEAD
Updating 9272da5..29aba7c
Fast-forward
 pluto.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 pluto.txt