2011/10/10 16:21
  오랜만에 서버에서 repo sync를 해 보니 아래와 같은 에러가 나왔다. 해당 브랜치가 발행이 되었고 Commit 5개가 있단다. 

error: android/packages/apps/: branch XXXXX is published (but not me rged) and is now 5 commits behind


   며칠 전 업로드를 하고서 쭈욱 접속을 하지 않았는데 그 사이에 누군가가 Commit을 한 걸까?
   무슨 에러인지 잘 모르겠으나, 무언가 곤란할 때는 역시 '폴더 삭제 후 서버 소스 내려받기'! 하지만 에러는 여전하고- 삭제가 만능은 아니었다. 두어번 더 폴더를 날리며 헤매다가 끝내 다른 분께 도움을 요청해보니 해결법은 '브랜치를 날리는 것'에 있었다. 

$ rm -rf 폴더이름                   : 작업하는 폴더 바깥으로 나가서, 해당 폴더를 통째로 날려버립시다
$ repo sync 폴더이름             : 알아서 폴더 생성 및 내려받기까지 다 해주는 기특한 녀석!
                                             (사실 처음에는 멋모르고 mkdir 폴더이름 --> cd 폴더이름 --> repo sync . 의 긴 여정을 거쳤다;;)
$ cd 폴더이름                   
$ git branch                     : 현재 가진 브랜치를 출력해서 보여준다
$ git branch -D 브랜치명    : 위에서 나온 브랜치명을 입력하여 해당 브랜치를 삭제한다
$ repo start 브랜치명 --all       :  브랜치를 삭제했으니 현재는 no branch 상태, 다시 브랜치를 시작합시다

이제는 repo sync도 에러없이 OK!


   브랜치 삭제 부분만 빼면 내가 수행했던 것과 동일한 과정인데...;; 브랜치 삭제가 중요했나보다.
   그런데 이게 왜 중요한지는 해결법을 가르쳐주신 분도 명확하게 알진 못하신단다. 그저 하다보니까 되어서 그렇게 쓰신다고. 여튼, 작업할 때마다 브랜치를 날릴 필요는 없지만 혹시 싱크 과정에서 문제를 겪게 된다면 위와 같이 브랜치를 날리고 새로 받는 방법도 써볼만한 것 같다.

Posted by 보댕