2017-11-14 15 views
0

나는 (인간의 실수로) 역사상 몇 가지 나쁜 병합을 가지고있다. 내가 더 좋아하는지 알 수있는 빠른 방법을 원합니다. 이를 자동화하기 위해 모든 병합 커밋에 대해 병합이 자동으로 수행되는지 (주어진 충돌 해결 전략으로)와 실제로 병합 된 경우의 차이점을 확인하고자합니다.병합 커밋과 동일한 부모의 자동 병합간에 차이점을 어떻게 확인할 수 있습니까?

어떻게하면됩니까?

답변

1

자동 병합을해야합니다.

이렇게하려면 의심스러운 병합의 두 부모 중 한 명을 확인하고 프로세스에서 "분리 된 머리"를 부여하십시오. 그런 다음

git checkout $suspect_merge^1 

, 두 부모의 기타에 git merge 실행 : $suspect_merge 용의자 병합에 적합한 이름 (예를 들어, 해시 ID)를 포함하는 경우

git merge [options] $suspect_merge^2 

병합는 다음 중 하나를 마무리하고 분리 된 HEAD에 대해 새로운 커밋을하거나 충돌로 인해 실패 할 수 있습니다. 실패하면 수동으로 올바르게 끝내고 커밋 할 수 있습니다.

git diff $suspect_merge HEAD 

당신 git checkout 명명 된 지점은, 그냥 분리 HEAD에 만든 병합 포기 :

지금 당신은 당신이 용의자 병합에 비교할 수있는 좋은 병합 있습니다. 결국 (일반적으로 reflog 항목이 만료되는 30 일 후 약간의 시간이) 가비지 수집됩니다. 그것을 지키기 위해 이름을 지어라. 가지 나 꼬리표 이름이 잘 작동한다.