我有以下配置git difftool:
[diff]
tool = any
[difftool]
prompt = false
[difftool "any"]
cmd = /maxkoretskyi/test/my.sh "$LOCAL" "$REMOTE"
在里面cmd我可以訪問幾個變數,比如$LOCAL我$REMOTE傳遞給my.sh. 這些是臨時檔案路徑,我的腳本像這樣輸出它們echo "$1" "$2":
$ git difftool git difftool 821d1b06 73a14711
Temp/NviQKc_f1.txt
Temp/exkQKc_f1.txt
有什么方法可以訪問my.sh用戶傳遞給 `git difftool 命令的提交哈希?
uj5u.com熱心網友回復:
difftool不是你想要的;該程式對檔案內容進行操作,并且無法訪問元資料。相反,查看GIT_EXTERNAL_DIFF環境變數
從手冊頁參考:
GIT_EXTERNAL_DIFF
當設定環境變數 GIT_EXTERNAL_DIFF 時,會呼叫由它命名的程式來生成差異,并且 Git 不使用其內置的差異機制。對于添加、洗掉或修改的路徑,使用 7 個引數呼叫 GIT_EXTERNAL_DIFF:
path old-file old-hex old-mode new-file new-hex new-mode
命令列上的十六進制值GIT_EXERNAL_DIFF是 blob 物件 ID,而不是提交 ID;請參閱相關問題哪個提交有這個 blob?(例如。git log --find-object=<blob>)
注意相同的 blob id 可能出現在多個提交中,因此無法唯一標識在“ git diff <commit> <commit>”命令列中參考了哪些提交
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/438247.html
上一篇:我的fork中的更改已合并,但我的fork仍顯示“提前4次提交”
下一篇:git添加不同的檔案組?
