2012-08-09 2 views
3

그래서 "badBranch"라는 분기를 내 개발 지점에 병합하고 병합 후 여러 커밋을 발견했습니다. git revert -m 1 <commit hash of the merge>git : 내가 병합 한 내용으로 다시 합치기

큰 일했다 :

은 내가 되돌리기했다. 시간이 흘러 코드가 작성되었고 추가 변경 사항이 개발되었습니다.

이제 더 많은 여유를 가지고, 나는 그것을 고칠 수 있는지보기 위해 badBranch를 다시 개발 (또는 개발)하고 싶습니다.

그러나 개발은 badBranch가 역사에 있다고 생각합니다 (생각하니?), 그래서 badBranch를 체크 아웃하고 병합하면 개발의 현재 상태가 나타납니다.

실제로 어떻게 devleop과 badBranch를 병합 할 수 있습니까?

감사합니다.

+0

"man git-revert"는 다음과 같이 기록해야합니다 : "병합 커밋을 되 돌리면 병합에 의해 가져온 트리 변경 사항을 ** 절대 원하지 않을 것이라고 선언합니다. 결과적으로 나중에 병합합니다 이전에 되돌려 진 병합의 조상이 아닌 커밋에 의해 도입 된 트리 변경 사항 만 가져옵니다.이 작업은 원하는 작업 일 수도 있고 아닐 수도 있습니다. " Emphasis mine : –

답변

0

나는이 작동하는지 알고,하지만 checkout 에드 badBranch 및 merge D에서 개발하고 checkout 에드 개발하고 badBranch에서 merge D를 당신에게하지 않을 경우합니까?

6

은 놀라 울 정도로 간단합니다 - 그냥 되돌리기 되돌리기 :

git revert <commit hash of your merge revert> 

마르코에 의한 하우투 링크는 다음 솔루션을 제공합니다 (모든 SHA ID가 다를 수 있습니다) 모든 커밋을 다시 -no-ff으로 badBrahcn을 리베이스를 마스터에게 병합하십시오.

+0

이 HOWTO는 이것이 왜 올바른 해결책인지 설명합니다 : http://schacon.github.com/git/howto/revert-a-faulty-merge.txt –

관련 문제