시작하며
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 만으로도 가능해졌습니다.
마치며
git pull origin master를 하면 문제 없는 상황이었지만
자세하게 조사해보았습니다. 여기저기 찾아 보니 쫌 공부가 되었네요. 아직도 정확히는 이해 하지 못했지만요 ㅋㅋㅋ
이 방법 보다 좋은 방법 알고 계신 분은 댓글좀 달아주세요 ㅋㅋ 틀린부분 지적은 더 감사드리고요.