공부/git

git pull 가 안먹을때

inSaPPoRo 2017. 3. 17. 13:22

시작하며

repository에서 clone으로 복사하면 폴더가 생성 되면서 파일들을 다운 받을수 있지만
가끔 폴더가 있어서 삭제 하기 좀 그런 상황이 있습니다. 삭제하고 clone으로 하면 간단하지만요 ^^;

git pull 가 안먹을때

제가 방법을 잘 몰라서 인지 모르지만, 저는 remote를 이용하고 이용하고 있습니다.

예를 들어 folderName 라는 폴더가 있을경우

$ cd folderName 
$ git init 
$ git remote add origin {repository.url} //인증은 ssh 키로. 
$ git pull

이렇게 하면 아래와 같은 메시지가 나옵니다.

remote: Counting objects: 140, done. 
remote: Compressing objects: 100% (137/137), done.
remote: Total 140 (delta 7), reused 121 (delta 2) Receiving objects: 100% (140/140), 4.98 MiB | 6.56 MiB/s, done. Resolving deltas: 100% (7/7), done. 
From git.XXX.XX:XXXX/XXXXXX.XX.XX //repository.url  
* [new branch]      master     -> origin/master 
There is no tracking information for the current branch. 
Please specify which branch you want to merge with. 
See git-pull(1) for details.      

    git pull <remote> <branch>  

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> master

위에서 다운로드는 완료 한것 같지만 파일은 없습니다.
영어를 잘 못해서 정확히는 이해가 안되지만 메세지는 현재 branch에 대한 추적 정보가 없다. 병합할 branch를 지정해라 같습니다.

$ git branch

그래서 현재 branch를 확인해 보았습니다만,
아무 응답이 없습니다. branch가 없나 봅니다.

$ git checkout master

master로 chekout 해보았습니다.
branch 를 확인해보니 *master 가 나오는군요.

다시 pull 을 해보았습니다. 위에 보이는 메시지가 다시 나오는군요.
로컬에 branch가 생성되었으니 그걸 리모트 branch를 추적하게 해야 하나 봅니다.
메시지 아랫부분에 나와있었네요.
-u`나 `--set-upstream-to 옵션 줘서 로컬 master가 origin/master를 추적하게끔 해줍니다.

$ git branch --set-upstream-to=origin/master master

git pull 만으로도 가능해졌습니다.

마치며

저는 아직 branch를 이용하지 못해서 항상 master 이니
git pull origin master를 하면 문제 없는 상황이었지만
오기로 한번 조사해보았습니다. 여기 찾아 보면 쫌 공부가 되었네요.
아직도 정확히는 이해 하지 못했지만요 ㅋㅋㅋ
이 방법 보다 좋은 방법 알고 계신 분은 댓글좀 달아주세요 ㅋㅋ 틀린부분 지적은 더 감사드리고요.

반응형