2012-10-17 2 views
0

한 개발자가 분기를 feature1에 병합하고 결과를 밀어 넣었지만 일부 병합 충돌을 잘못 해결했습니다. 나는 을 체크 아웃하고 feature1에서 Bfeature2 (AB은 다른 개발자가 병합 한 커밋과 동일 함)에서 올바르게 병합했습니다.Git : 게시 된 병합 커밋 실행 취소 및 동일한 커밋의 다른 병합 적용

병합 결과를 분리 된 머리글에 커밋했으며 이제 다른 개발자의 병합 커밋을 되돌리고 feature1에 내 자신을 적용해야합니다. 어떻게해야합니까?

답변

1

위험한 방법 :

1) 태그하여, 커밋 분리 즉 git tag temp.

2) feature1 분기를 확인하십시오.

3) git reset --hard temp을 사용하여 분기의 로컬 복사본을 커밋을 가리 키도록 이동하십시오.

4) origin의 dodgy 버전을 덮어 쓰려면 git push -f origin feature1을 사용하십시오.

5) git tag -d temp으로 태그를 삭제하십시오.

이 모든 작업을 신중하게 수행하고 gitk을 사용하여 수행중인 작업을 확인하십시오. 그 당시 아무도 origin을 사용하고 있지 않은지 확인하십시오. 당신이 편집증 환자라면,이 모든 일을하기 전에 동료의 커밋에 태그를 붙이십시오 (엉망인 경우를 대비하여 좋은 생각입니다).

중요 : 다른 사람이 동료의 병합 작업을 기반으로하는 경우 이렇게하기 전에 매우 열심히 생각하십시오. 모든 사람이 새 커밋을 rebase 할 필요가 있습니다.

+0

'origin'의 기록을 다시 쓰지 않아도되는 옵션이 있습니까? – spiffytech