앞에서 먼저 설명을 했었어야 했는데,
아무 생각없이 건너뛴 부분이 생각나서 급하게 블로깅을 한다.


우선 기존의 repository들이 정리가 안된 느낌이라서 이번에 새로 repository를 생성해보겠다.


$ mkdir ./bare1repo.git
$ cd ./bare1repo.git
$ git --bare init

이제는 생성한 repository를 clone하여 보자.


$ git clone chani@localhost:/srv/repository/bare1repo.git
$ cd ./bare1repo.git
$ git status

잘 clone 받아온 것을 확인할 수 있다.

지금은 파일이 하나도 없으니, 일단 파일 하나를 추가하고 commit 해보자.


$ nano ./readme.txt
$ git add ./readme.txt
$ git commit -m "create readme.txt"

Remote repository로 변경 사항을 보내보자.


$ git status
$ git push

보내기 위해서 'git push'를 했는데,
error가 발생을 했다.

push를 하기 위해서는 git에게 어떠한 방식으로 push를 할 것인지에 대해서 꼭 알려줘야 한다.
이전에도 한 번 언급을 했지만, 여기에서 다시 한 번 해보자.


$ git config push.default tracking
$ git push

이번에는 잘 되었다!


테스트를 위해서 clone을 하나 더 해보자.


$ mkdir 2nd
$ cd ./2nd
$ git clone chani@localhost:/srv/repository/bare1repo.git

여기 repository에서 파일 하나를 더 추가해보자.


$ nano ./readme1.txt
$ git add ./readme1.txt
$ git commit -m "create readme1.txt"
$ git push


여기에서 새로운 내용을 Remote repository에 넣었으나
이전에 내려 받은 repository에는 당연히 새로 변경된 내용이 반영이 되지 않았다.

그러면 이전에 내려 받은 repository에서 내용을 업데이트 하기 위해서는 어떻게 해야할까?


$ git pull

위 스크린샷을 보면 알겠지만 'git pull'을 하면 만사 OK다.

흐름을 살펴보면 아래와 같다.




여기에서는 바로 'git pull' 하나만 언급하지만, 실제로는 여러가지 작업이 복합되어 있다.

'git fetch'를 통해서 변경 사항을 내려받고, 지금 작업하고 있는 내용에 merge를 하는 과정을
한 방에 처리해주는 것이 바로 'git pull'이다.


나중에 'branch'와 'merge'에 대해서 학습을 하고선 다시 한 번 이 부분을 분석해보도록 하자!!!

반응형

'SCM > Git-GitHub' 카테고리의 다른 글

Pro Git 번역본  (0) 2012.03.22
Remote - remote, fetch, pull  (0) 2012.03.19
Remote Repository - git push  (2) 2012.03.04
Git Server - push + 한글  (1) 2012.02.26
Git Server - Remote Connect  (0) 2012.02.25

+ Recent posts