HOWTO · Git

Git용 SourceGear DiffMerge 도구 설정

이 기사에서는 SourceGear의 DiffMerge를 기본 difftool로 사용하도록 Git을 구성하는 과정에 대해 설명합니다.

이 기사에서는 SourceGear의 DiffMerge를 기본 difftool로 사용하도록 Git을 구성하는 방법에 대해 설명합니다. 이 도구를 사용하면 Git의 기본 difftool에 비해 향상된 시각적 효과로 병합 충돌을 쉽게 이해할 수 있습니다.

3방향 파일 비교를 지원하므로 3방향 병합에 이상적인 도구입니다.

파일의 이전 상태, 현재 상태, 병합 후 결과를 볼 수 있습니다. SourceGear의 공식 웹사이트에서 DiffMerge를 다운로드하여 설치해야 합니다.

Windows에서 DiffMerge 설정

기본적으로 DiffMerge 도구를 사용하도록 Git을 설정하려면 이를 .gitconfig 파일에 추가합니다.

 [diff]
     tool = DiffMerge
 [difftool "DiffMerge"]
     cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' "$LOCAL" "$REMOTE"
 [merge]
     tool = DiffMerge
 [mergetool "DiffMerge"]
     cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' -merge -result="$PWD/$MERGED" "$PWD/$LOCAL" "$PWD/$BASE" "$PWD/$REMOTE"
     trustExitCode = true
 [mergetool]
     keepBackup = false

비교 인수 매개변수의 경우 다음이 있습니다.

  1. 원본 파일인 $LOCAL.
  2. 수정된 파일인 $REMOTE.

Git Bash에서 git difftoolgit mergetool 명령을 실행하여 DiffMerge를 열 수 있습니다.

또는 명령 프롬프트에서 아래 명령을 실행하여 .gitconfig 파일을 업데이트할 수 있습니다.

C:\> git config --global diff.tool diffmerge
C:\> git config --global difftool.diffmerge.cmd
    "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe
        \"$LOCAL\" \"$REMOTE\""

C:\> git config --global merge.tool diffmerge
C:\> git config --global mergetool.diffmerge.trustExitCode true
C:\> git config --global mergetool.diffmerge.cmd
    "C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe
        -merge -result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\""

Mac OS에서 DiffMerge 설정

Mac OS에서 DiffMerge를 사용하도록 Git을 구성하는 프로세스는 아마도 가장 간단할 것입니다. 아래 디렉토리가 있는지 확인하십시오.

/usr/local/bin/diffmerge

아래 명령을 실행하여 .gitconfig 파일을 업데이트하고 테스트하십시오.

git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/usr/local/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/local/bin/diffmerge --nosplash \"\$LOCAL\" \"\$REMOTE\""

git config --global -e 명령을 실행하여 .gitconfig 파일을 검사할 수 있습니다. 다음과 같이 표시되어야 합니다.

[diff]
	tool = diffmerge

[merge]
	tool = diffmerge

...

[mergetool "diffmerge"]
	cmd = /usr/local/bin/diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
	trustExitCode = true
[mergetool]
	keepBackup = false
[difftool "diffmerge"]
	cmd = /usr/local/bin/diffmerge --nosplash \"$LOCAL\" \"$REMOTE\"

Ubuntu에서 DiffMerge 설정

Ubuntu에서 구성하는 것은 Mac OS와 매우 유사합니다. 동일한 명령을 사용하지만 설치 위치를 변경합니다.

다음은 명령입니다.

git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/usr/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/bin/diffmerge --nosplash \"\$LOCAL\" \"\$REMOTE\""

그 정도입니다. 이제 아래 명령을 실행하여 테스트할 수 있습니다.

$ git mergetool
$ git difftool

요약하자면, SourceGear의 DiffMerge 도구를 사용하도록 Git을 구성하려면 운영 체제에 따라 나열된 명령으로 .gitconfig 파일을 업데이트해야 합니다.