2013-03-22 1 views
0

분기를 병합하기위한 config 명령을 수행하려고합니다. $ BASE $ LOCAL 및 $ REMOTE와 같은 사용 가능한 변수가 있습니다. 이러한 변수에는 파일 이름 뒤에 기본, 로컬 및 원격 문자열이옵니다.병합 할 수있는 분기 이름 병합

이러한 3 가지에 대한 분기 이름을 포함하는 변수가 있습니까?

+0

하지 거기에 단지 2 가지 포함 :와

meld "$WORK_LOCAL/${FILE}" "$OUTPUT/${FILE}" "$WORK_REMOTE/${FILE}" 

: 샘플 명령 행이 올 경우 DiffMerge는, 당신이 mkdircp 명령을 생략하고 라인을 대체 할 것이다 사용하려면? (합병하려는 지점과 병합중인 지점) – tjameson

+0

실제로 3 개의 분기와 파일이 있습니다. 세 번째 파일은 위에서 언급 한 두 파일의 조상 브랜치 (이 두 파일이 어딘가에 나뉘는 공통 브랜치)에서 가져옵니다. 네, 조상의 이름은 필요 없습니다. – codiac

답변

0

해당 커밋을 가리키는 참조 번호는 ORIG_HEADMERGE_HEAD입니다.

WORK_LOCAL="$WORK/$(git name-rev ORIG_HEAD | cut -d' ' -f 2)" 
WORK_REMOTE="$WORK/$(git name-rev MERGE_HEAD | cut -d' ' -f 2)" 

당신은 또한 git describe --all ORIG_HEAD을 사용할 수 This script 그 커밋 잘 하나 이상의 이름을 가질 수 있지만, 이들에 대한 적절한 이름을 가져 오는 방법을 보여줍니다.

편집 : Windows에서 mergetool을 설정하는 방법의 예는 this page을 참조하십시오.

"C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe" --title1="$WORK_LOCAL = Current branch" --title2="$BASE = Common ancestor" --title3="$REMOTE = Merging branch" /m /r="$MERGED" "$LOCAL" "$BASE" "$REMOTE" 
+0

그러나 어떻게 이것을 .gitconfig 파일에 통합 할 수 있습니까? 나는이 점을 썼다. cmd = \ "C :/Program Files/SourceGear/Common/DiffMerge/sgdm.exe \"--title1 = \ "\"$ LOCAL \ "= 현재 가지 \"- \ m/r = \ "$ MERGED \"\ "$ LOCAL \"\ title \ 2 "\"\ "$ BASE \"= 공통 조상 \ "- 제목 = \"\ "$ REMOTE \"= "$ BASE \"\ "$ REMOTE \" – codiac

+0

내가 링크 된 것과 같은 래퍼 스크립트를 작성해야합니다. 또는 Windows의 경우 [병합 도구 설정] (http://davesquared.net/2009/02/setting-up-diff-and-merge-tools-for-git.html)과 같은 것입니다. – Joe

+0

감사합니다. 나는 창문이있다. 당신이 저에게 준 소스는 다른 접근 방식에서 제가 제공 한 라인과 똑같습니다. 나는 다음과 같은 것을 찾고 있었다 : 나는 'better_interface'라는 이름의 브랜치와'master'라는 이름의 브랜치를 가지고 있다고 가정 해 보자. diffmerge를 열면 왼쪽의'better_interface'와 오른쪽'master'에 표시되어야한다. 파일의 이름. 감사합니다. . – codiac