2013-10-01 2 views
3

git merge를 구성하여 충돌 해결이 항상 외부 병합 도구를 통과하도록하는 방법이 있습니까?git merge가 항상 외부 병합 도구를 사용하도록 강제 할 수 있습니까?

semanticmerge에 대한 구성을 쓰고 있는데, git에서 잘못 처리하지만 semanticmerge로 정확하게 해결할 수있는 경우가 있습니다. * 두 개발자가 동일한 파일의 두 위치에서 동일한 메소드를 추가했습니다.

문제는 git merge가 충돌이 자동으로 발생하므로 mergetool을 호출 할 수 없다는 것입니다.

감사합니다.

답변

-3

git-scm book (http://git-scm.com/book/en/Customizing-Git-Git-Configuration#External-Merge-and-Diff-Tools)을 확인하십시오. 이것은 외부 병합 및 diff 도구에 대한 정교한 설명이 있습니다.

+0

링크가 죽어 버린 경우를 대비해 설정 정보를 포함해야합니다 (답변을 쓸모 없게 만들 것입니다). – R0MANARMY

+0

네,하지만 제가 요구하는 것이 포함되어 있지 않습니다. 그래서 내가 묻는거야. AFAIK는 모든 병합시에 mergetool을 강제 실행하는 방법을 말하지 않습니다. – pablo

0

gitattributes의 설명서를 참조하십시오. 딥 다운은 "merge"라는 속성으로, 은 일치하는 파일에 대한 병합 메소드를 설정합니다.

는 다음과 같은 예를 들어, 당신은 병합 할 filfre 프로그램을 사용합니다

*.fancy merge filfre %O %A %B %L %P 

포함 된 프로젝트의 루트에 .gitattributes 파일을 가질 수 있습니다. 그것은

  • 퍼센트의 O 조상의 버전 임시 파일 이름
  • % 현재 버전 파일 이름
  • %의 B 다른 지점 '버전의 임시 파일 이름
  • 퍼센트의 L 충돌 표식 크기로 프로그램을 호출
  • 병합 결과

저장 될 것이다

  • 퍼센트 P의 경로 이름은 병합의 드라이버는 병합의 결과 % A를 덮어 예상 병합하십시오.

    세계적으로 예를 들어, .git/config 또는 $HOME/.gitconfig를 들어,

    [merge "filfre"] 
        name = feel-free merge driver 
        driver = filfre %O %A %B %L %P 
        recursive = binary 
    

    당신의 자식 구성에 배치 병합 도구를 설정, 제안이 이끄는 그 문서의 섹션의 "사용자 정의 병합 드라이버 정의는,"이

    .