2011/11/10 14:16

          git log를 찍어본다.)
          앗, Git에 있는 최신 commit 내용이 없군! 싱크가 안맞나봐.
          ( repo sync를 한다.)
          어라? 왜 업데이트되지 않고 그대로인거지? 뉴뉴


 이런 식으로 가끔 repo sync를 해도 Git과 동일하게 싱크가 맞춰지지 않을 때가 있다. 가장 만만한 방법인 폴더를 날린 후 다시 받기를 해도 안 된다. repo start만 수행하면 이상하게도 예전 로그로 돌아가 버린다. 이럴 때에는 branch를 날려야 한다. branch에서 어떤 정보를 가지고 있는 듯 한게, branch를 삭제하지 않고서는 뭔 짓을 해도 해결되지 않는다.

  현재 branch를 날리고 no branch 상태에서 새로 repo start를 하면 Git과 동일한 최신 상태로 업데이트할 수 있다. 

Step1. no branch 상태 만들기
  브랜치가 설정되어 있는 상태에서 해당 브랜치를 삭제할 수는 없다. 만약 그랬다가는 다음과 같은 에러를 만나게 될 테니까. 

  error: Cannot delete the branch 'XXXX_master' which you are currently on.
 
  현재 브랜치가 아니면 되는 것이니 다른 브랜치로 옮겨도 될 것 같긴 한데, 난 하나의 브랜치만 쓰고있기때문에 그냥 폴더를 지우고 새로 받는 것으로 no branch를 만들기로 했다.

  rm -rf 폴더이름                     : 폴더를 통채로 지운다 
  repo sync 폴더이름             : 폴더를 새로 내려받는다 (폴더 생성부터 다운로드까지 한번에!) 
  cd 폴더이름                          : 다시 만들어진 해당 폴더에 들어가서
  git branch                            : 브랜치 목록을 출력한다


  브랜치 목록을 출력했을 때, 기존의 브랜치(XXXX_master라고 가정한다)는 한 줄 아래로 밀리고 현재의 브랜치가 no branch로 나타나는 것을 확인할 수 있다. 

 [결과]   * (no branch)
              XXXX_master

Step2. 기존 브랜치 삭제하기

 git branch -D XXXX_master

   이제 브랜치를 삭제할 수 있게 되었다. -D 옵션으로 브랜치 삭제가 가능하다. 

Step3. 브랜치 다시 설정하기

repo start XXXX_master --all       

  삭제 후 해당 브랜치를 다시 설정한다. 그럼 끝!
  이제 다시 git log를 찍어보면 Git과 동일하게 최신의 log들이 업데이트 되어있음을 확인할 수 있다. めでたし~めでたし 
Posted by 보댕