2012-05-27 2 views
2

가끔은 브랜치에서 일하는 것을 발견하고 브랜치의 모든 변경 사항을 마스터 브랜치에 병합하여 마스터가 브랜치의 필수 복제본이되도록 작업하고 있습니다. 마스터에서 쉽게 변경하여 분기의 모든 변경 사항을 마스터에 병합 할 수 있습니까? 내가 바라는 행동은 주인이 지회의 정확한 클론이 될 것이라는 것입니다. 나는 대개 개인적 갈등을 한 번에 한 명씩 주인에게 합병하지만이 일을하는 더 쉬운 방법이 있습니까? 시간 내 줘서 고마워.모든 변경 사항과 함께 분기를 마스터에 병합 하시겠습니까?

+0

감사합니다. 정확하게 내가 찾고있는 것이 었습니다. – drbunsen

답변

1

git reset --hard 당신의 새로운 마스터 헤드가되고 싶은 커밋의 ID는 당신의 솔루션이어야합니다.

http://git-scm.com/2011/07/11/reset.html

편집 : 거 야 플래그 그것을 중복에 : 나는 언급 중복의 솔루션에서 How to replace master branch in git, entirely, from another branch?

봐. 그러나 원하는 결과에 따라 제안 된 재설정이 해결책 일 수 있습니다. 당신이 역사를 유지하려면

+1

마스터에서 만든 모든 커밋을 지울 때 지사에없는 커밋을 모두 잃게됩니다. (당신은 그들에게 돌아갈 수는 있지만 그들은 더 이상 지점에 있지 않을 것입니다.) – ellotheth

+0

이것이 이것이 핵심이라고 생각했습니다. –

+0

아마도 그렇게. (나는 약간의 질문을 발견했는데, "가지의 클론"은 기술적으로 별도의 사본을 의미 할 것이다.) – ellotheth

0

에서, ours 병합 전략을 사용하면 master 브랜치의 역사에 대해 관심이없는 경우

git checkout branch 
git merge -s ours master 

을 재설정 :

git checkout master 
git reset --hard branch 

(이를 을 모두 버리십시오. 로컬 변경으로 마스터 커밋을 도달 할 수 없게 만듭니다!)

만약 여러분이 커밋을하지 않았다면 r, 지사에없는 경우 지사를 지점으로 빨리 감기 할 수 있습니다.

git checkout branch 
git merge master 
# or `git merge --ff master` to only allow fast-forward 
관련 문제