2012-06-21 3 views
9

나는 로컬 토픽 브랜치가 자식의 repo에 원격 지사 기반으로했다 : 원격 지점은 최근에 떨어져으로 업데이트 된git을 사용하면 상위 원격 분기가 리베이스 된 후 어떻게 주제 분기를 저장합니까?

1 - 2 - 4 - 5 - 9 - 11 master 
     \ 
     3 - 6 - 8 - 12 remote branch 
       \ 
       7 - 10 my topic 

을 마스터 :

1 - 2 - 4 - 5 - 9 - 11 master 
         \ 
      ?   3' - 6' - 8' - 12' remote branch 
       \ 
       7 - 10 my topic 

내가 떨어져 내 주제에 지점을 리베이스 싶습니다 원격 브랜치의 헤드를 사용하여 결국 변경 사항을 원격으로 다시 병합 할 수 있습니다. 그러나 부모 커밋의 해시가 변경 되었기 때문에 간단한 시도가 필요합니다.

$ git rebase origin/remote_branch 

나는 결코 손대지 않은 파일에서 여러 가지 충돌이 발생합니다.

이 브랜치를 정리하기 위해 할 수있는 것이 있습니까?

답변

7

단순히 origin/remote_branch에서 리베이스하는 것은 remote_branch의 팁에서 오래된 커밋을 리베이스하려고하기 때문에 git을 혼란스럽게합니다. 커밋과 충돌이 중복됩니다.

my-topic이 어디에 투입

git rebase --onto <6'-SHA> <6-SHA> my-topic 

<6'-SHA><6-SHA> 각각의 신규 및 기존 IDS있는 --onto 옵션을 사용하여, 대신 당신은 떨어져 연결해야하고에 새로운 지점으로 여섯 번째 하나에 관련 커밋 만들어진.

+1

완벽하게, 내가 필요로했던 것을 정확하게했다. 이 문제에 걸림돌이되는 다른 사람에게는 부모 브랜치에서 첫 번째 커밋을 찾을 때까지 내 토픽 브랜치의'git log'로 돌아가서 <6-SHA>을 얻을 수있었습니다. 그런 다음 author, date 및 commit 메시지를 사용하여 origin/remote_branch의 로그에서 새 해시를 검색했습니다. –

관련 문제