我想使用opendiff作爲git diff的默認diff-tool。這曾經工作,但由於某種原因停止工作。 我使用的腳本:我不能讓git diff使用opendiff
echo opendiff $2 $5 > opendiff-git.sh
這是在設定的.gitconfig:
[diff]
external = ~/opendiff-git.sh
這停止我最近的工作。哪裏不對?
更新: 當我克隆一個新的倉庫時,一切正常!奇怪!
我想使用opendiff作爲git diff的默認diff-tool。這曾經工作,但由於某種原因停止工作。 我使用的腳本:我不能讓git diff使用opendiff
echo opendiff $2 $5 > opendiff-git.sh
這是在設定的.gitconfig:
[diff]
external = ~/opendiff-git.sh
這停止我最近的工作。哪裏不對?
更新: 當我克隆一個新的倉庫時,一切正常!奇怪!
我發現這個問題,而我試圖設置了opendiff作爲我的git的差異&合併工具。 奇怪的是,當我使用echo opendiff $ 2 $ 5> opendiff-git.sh創建腳本時,腳本沒有包含參數佔位符$ 2 $ 5我手動添加它們並開始工作!
此命令
echo opendiff $2 $5 > opendiff-git.sh
導致在含有
opendiff
我添加兩個參數佔位符$ 2 5 $手動
opendiff $2 $5
所作的外殼腳本的可執行文件opendiff-git.sh如由knittl
012所建議chmod +x ~/opendiff-git.sh
它的工作原理!
您必須在命令行或外殼程序中轉義'$'才能找到名稱爲'$ 2'和'$ 5'的變量,它們不存在,因此它們被替換爲空字符串。試着運行它:echo opendiff \ $ 2 \ $ 5>〜/ opendiff-git.sh – petrsnd 2012-09-14 21:44:23
您現在可以使用git config
指定一個默認工具。使用FileMerge,即opendiff
,運行:
git config --global diff.tool opendiff
如果您查看~/.gitconfig
文件,你現在應該看到:
[diff]
tool = opendiff
現在應該工作。
在_macOS Sierra_和_git版本2.10.1(Apple Git-78)上不起作用_ _ – gr4nt3d 2017-03-08 11:14:41
它是否報告了錯誤?或者只是給定一個固定的差異? – cxreg 2011-06-15 05:59:26
不,它使用git diff時不報告錯誤,它只是在終端中打印diff。我也可以自己使用opendiff。 – Ida 2011-06-15 06:57:09
我在Mac OS X中有完全相同的問題。在此之前,即使沒有設置此shell腳本,opendiff也能很好地工作。它停止工作後,我添加了腳本和diff.tool和diff.external選項,但它仍然不起作用。它並沒有給出錯誤,只是讓終端差異化。會發生什麼? – Petruza 2013-01-21 12:26:56