我花了一些時間來配置 git(git 版本 2.35.3.windows.1)以使用 WinMerge(2.16.20)作為外部 difftool。這篇文章是我的切入點,這個要點似乎對某些人有所幫助。我這邊還是沒有運氣。
$ git config --global --list
...
diff.tool=winmerge
difftool.winmerge.prompt=false
difftool.winmerge.trustexitcode=true
difftool.winmerge.cmd=.... (different versions see below)
--------------------------------------------------------------------------------
Example
cmd = "/c/Program\\ Files\\ \\(x86\\)/WinMerge/WinMergeU.exe" -u -e $LOCAL $REMOTE
cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" -u -e \"$LOCAL\" \"$REMOTE\"
問題1:在帖子中作者指的是git 2.5版本。但官方 repo 將 2.36 列為最新版本。從 2015 年開始,Windows 似乎有一個 2.5 版本。那是實驗性的嗎?還是不是官方的?
問題 2:有人可以解釋git difftool幕后作業是什么嗎?有沒有辦法模擬 git 之外的呼叫,所以我可以更好地除錯它?也許有人也有這個問題,可以解釋他是如何除錯問題的
我沒有錯誤資訊(似乎被吞沒了......)
uj5u.com熱心網友回復:
在 gitconfig 中撰寫 Windows 路徑的正確空格、斜杠和反斜杠是一場噩夢。為避免這種情況,請添加c:\Program Files (x86)\WinMerge到系統變數Path(google windows how to edit system variables),以便我們可以WinMergeU.exe直接在命令列中的路徑下呼叫可執行檔案(在您的情況下),而不是其絕對路徑。
更新后Path,重新打開 git-bash 以重新加載它。運行git config --global -e編輯difftool.winmerge.cmd
[difftool "winmerge"]
cmd = WinMergeU.exe -u -e "$LOCAL" "$REMOTE"
要測驗它是否有效,請輸入 git 存盤庫并運行git difftool HEAD^ HEAD. 您可以嘗試其他git diff命令,替換git diff為git difftool.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/467724.html
下一篇:為什么gitbranch-r顯示同一個分支的兩個名稱:origin/master和[reponame]/master?
