2012-02-09 2 views
54

Git에서 병합 충돌이 발생하면 다음과 같은 junk가 충돌하는 파일에 삽입됩니다. 세 가지 질문 :병합 충돌 해결

  1. 어떻게 이러한 특수 효과를 읽나요?
  2. 이러한 병합 충돌을 수정할 때 사용할 수있는 전략은 무엇입니까?
  3. Mac 용 GUI 도구가있어이 파일을 읽는 방법을 알고 문제를 쉽게 해결할 수 있도록 두 버전을 나란히 표시 할 수 있습니까?

enter image description here

참고 :이 관련이있는 경우에, 나는 GitHub의 맥 GUI 클라이언트를 사용하고 있습니다.

+1

가능 중복 된 [I 힘내에서 병합 충돌을 해결하려면 어떻게합니까?] (http://stackoverflow.com/questions/161813/how-do-i-fix-merge-conflicts-in-git) - # 1 링크 구글 "병합 병합" –

답변

20

이제 Git이 파일에 삽입하는 횡설수매 마커를 읽는 것보다 더 나은 해결책이 있습니다. Kaleidoscope 2, Black Pixel의 diff 도구의 두 번째 릴리스는 이제 병합 도구이기도합니다. 무료는 아니지만 아름답게 작동합니다.

Kaleidoscope 2를 설치 한 후 힘내와 통합하는 것이 정말 간단합니다.열기 만화경과 메뉴 바에서 그런 다음이 창을 볼 수 있습니다 만화경>통합 ...

Kaleidoscope's Integration menu option.

을 선택합니다. 왼쪽 탐색 메뉴에서 Git을 선택한 다음 ksdiff 명령 줄 도구를 설치 한 다음 Kaleidoscope Git의 기본 diff 및 병합 도구를 만듭니다. 당신이 망할 놈의 병합 충돌이 일단

Kaleidoscope's Git Integration dialog.

마지막으로, 단순히 명령 줄로 이동 git mergetool을 실행합니다. 이제 갈등은 읽기 쉽습니다. 즐겨.

Kaleidoscope sane view for merge conflicts.

+2

Kaleidoscope –

+1

@FrankFang을 통해 해결 방법을 표시하는 방법에 대해 궁금합니다. 모든 갈등이 해결되면 창을 닫으면됩니다. 병합이 잘되었는지 묻습니다. –

34

확정 상태 병합 작업을 시작하기 전에 인 HEAD 개정에서 오는 <<<<<<====== 사이에 모든 것이 (나무가 더러운 경우 git merge가 불평 할 것이다, 그래서 당신의 작업 디렉토리에 해당해야한다).

======>>>>>> 사이의 부분은 병합되는 버전에서 가져온 것입니다. >>>>>> 다음의 텍스트는 충돌하는 변경 사항을 도입 한 커밋의 주석입니다.

충돌 표시가 있다는 것은 파일의이 부분의 기본 버전이 "새로운"버전과 다른 것을 의미합니다. 기본 버전 (마지막 공통 조상)은 표시되지 않습니다.

병합을 좀더 편하게하고 GUI를 사용할 수있게하려면 kdiff3을 살펴 보시기 바랍니다.

+0

고마워, 사이먼. 이 파일을 열 수있는 HEAD 및 병합 된 버전을 나란히 표시 할 수있는 GUI 응용 프로그램이 있습니까? –

+0

위의 @Brian이 제안한 링크를 따르십시오 .... –

+0

링크 된 정보 중 어떤 것이 유용 할 수 있습니까? git 매뉴얼은 나에게 접근 할 수 없다. –

16
<<<< HEAD #Where the conflict starts 

#Previous Revision 

========== # The point where things look iffy 

#Things that changed 

>>>>> New Commit # Point where the conflict ends 

맥의 엑스 코드는 opendiff와 명령 행에 액세스 할 수 있습니다 FileMerge를 함께 제공됩니다.

git mergetool -t opendiff

+2

# 변경된 내용이 없지만 여전히 충돌이있는 것은 무엇을 의미합니까? – Ken

+0

git mergetool -t opendiff가 저에게 답이었습니다. 감사. – Billy

4

당신은 (그래픽)를 구성 도구를 병합 충돌 해결을 수행하는 도구를 사용할 수 있습니다.

는 또한 git mergetool 명령에 봐 - 당신이 설치되어있는 미리 정의 된 도구 중 하나를하거나 다른 도구를 구성한 경우, 당신이 GUI에 관심이 있다면 해상도 http://schacon.github.com/git/git-mergetool.html

을위한 도구를 열 것이다 도구를 사용하면 표기법이 실제로 의미하는 바를 염려 할 필요가 없습니다. GUI 도구를 사용하면 쉽게 결의안을 작성할 수 있습니다. =====>>>>>으로 표시된 부분이 충돌 섹션임을 이해하십시오.

+1

이 파일들을 읽을 수 있고 그것을 여는 방법을 설명 할 수있는 Mac GUI 응용 프로그램의 예를 들려 줄 수 있습니까? 다른 diff 및 병합 도구에서이 파일을 열려고 시도했지만 두 파일로 해석되는 대신 단일 텍스트 파일로 열었습니다. (어느 쪽이 갈등 마커의 전체 목적입니까.) –