마 도움이되기를 바랍니다 :
git diff -S "<<<<<<< HEAD" -S "=======" -S ">>>>>>> $(git name-rev --name-only MERGE_HEAD)" HEAD
이것은 HEAD
으로 worktree의 내용을 비교를하지만 병합 마크의 세 가지 유형 중 하나 이상이 포함 된 경우 모든 출력을 보여줍니다 변화.
그래서 모든 파일이 통합되었습니다 확인하기
public void fooTheBar(Bar input) {
<<<<<<< HEAD
if (input == null) {
throw new Exception("input cannot be null!");
}
=======
Console.WriteLine("preparing to foo the bar");
>>>>>>> develop
input.foo();
}
, 당신의 검색해야 다음 :
예를 들어, 당신이 지점에서 병합하는 경우는 병합되지 않은 파일은 다음과 같을 수, develop
라고 세 줄 :
<<<<<<< HEAD
=======
>>>>>>> develop
그리고 이것은 명령에서 -S
인수가하는 것입니다.
git name-rev --name-only MERGE_HEAD
당신이 당신의 현재 지점에 병합 된 지점의 이름을 얻을 : 항상 develop
을하지 않을 것이기 때문에, 우리는 명령을 사용합니다.
(당신은 아마 하나 그 라인의 검색,하지만 세 가지가 더 강력 검색, 그리고 당신이 바로 선 중 하나를 제거하는 것을 잊었다 예 사례를 보여줍니다 수 있습니다.) 명령 이후
작업 트리를 HEAD
과 비교하고 단계적 변경 사항뿐 아니라 충돌이 여전히 포함 된 파일을 git add
에 기록한 경우에도 작동합니다.
해결되지 않은 것은 무엇을 말합니까? 아직도 갈등이 있다면 무엇을 의미합니까? 병합을 완료 할 수 있으면 충돌이 해결 된 것이어야합니다. – dave
일단 병합을 '추가'하고 '커밋'하면, Git에게 더 이상의 변경이 필요 없다는 것을 알려줍니다. 당신이 뭔가를 놓친다면 그것은 당신의 문제입니다. 그것을 고치고 병합 커밋을 다시 시도하거나'--amend'합니다. –
[Git에서 병합 충돌을 해결하는 방법] 가능한 복제본? (http://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git) –