設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
-
2.52.0
2025-11-17
- 2.49.1 → 2.51.2 無更改
-
2.49.0
2025-03-14
- 2.45.1 → 2.48.2 無更改
- 2.45.0 無更改
- 2.44.1 → 2.44.4 無更改
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 無更改
-
2.43.0
2023-11-20
- 2.41.1 → 2.42.4 無更改
-
2.41.0
2023-06-01
- 2.38.1 → 2.40.4 無更改
-
2.38.0
2022-10-02
- 2.31.1 → 2.37.7 無更改
-
2.31.0
2021-03-15
- 2.22.1 → 2.30.9 無更改
-
2.22.0
2019-06-07
- 2.13.7 → 2.21.4 無更改
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 無更改
-
2.9.5
2017-07-30
- 2.3.10 → 2.8.6 無更改
-
2.2.3
2015-09-04
- 2.1.4 無更改
-
2.0.5
2014-12-17
描述
git difftool 是一個 Git 命令,允許您使用通用的 diff 工具在不同修訂版本之間比較和編輯檔案。git difftool 是 git diff 的前端,並接受相同的選項和引數。請參閱 git-diff[1]。
選項
- -d
- --dir-diff
-
將修改後的檔案複製到臨時位置並對其執行目錄 diff。此模式在啟動 diff 工具之前從不提示。
- -y
- --no-prompt
-
啟動 diff 工具前不進行提示。
- --prompt
-
在每次呼叫 diff 工具之前進行提示。這是預設行為;提供此選項是為了覆蓋任何配置設定。
- --rotate-to=<file>
-
開始顯示給定路徑的 diff,它之前的路徑將移動到末尾並輸出。
- --skip-to=<file>
-
開始顯示給定路徑的 diff,跳過它之前的所有路徑。
- -t <tool>
- --tool=<tool>
-
使用 <tool> 指定的 diff 工具。有效值包括 emerge、kompare、meld 和 vimdiff。執行
gitdifftool--tool-help可獲取有效 <tool> 設定的列表。如果未指定 diff 工具,git difftool 將使用配置變數
diff.tool。如果未設定diff.tool配置變數,git difftool 將選擇一個合適的預設值。您可以透過設定配置變數
difftool.<tool>.path來顯式提供工具的完整路徑。例如,您可以透過設定difftool.kdiff3.path來配置 kdiff3 的絕對路徑。否則,git difftool 假定該工具可在 PATH 中找到。而不是執行已知的 diff 工具之一,git difftool 可以透過在配置變數
difftool.<tool>.cmd中指定要呼叫的命令列來定製以執行替代程式。當 git difftool 使用此工具呼叫時(無論是透過
-t或--tool選項還是diff.tool配置變數),配置的命令列將使用以下可用變數呼叫:$LOCAL設定為包含 diff 前像內容的臨時檔名,$REMOTE設定為包含 diff 後像內容的臨時檔名。$MERGED是正在比較的檔名。$BASE是為與自定義合併工具命令相容而提供的,並且與$MERGED的值相同。 - --tool-help
-
列印一個可以使用
--tool的 diff 工具列表。 - --symlinks
- --no-symlinks
-
git difftool 在
--dir-diff模式下執行時,當比較的右側與工作樹中的檔案內容相同時,預設行為是建立指向工作樹的符號連結。指定
--no-symlinks會指示 git difftool 建立副本。在 Windows 上,--no-symlinks是預設設定。 - -x <command>
- --extcmd=<command>
-
指定用於檢視 diff 的自定義命令。git difftool 會忽略配置的預設值,並在指定此選項時執行 <command>
$LOCAL$REMOTE。此外,$BASE會在環境中設定。 - -g
- --gui
- --no-gui
-
當 git difftool 使用
-g或--gui選項呼叫時,將從配置的diff.guitool變數讀取預設 diff 工具,而不是diff.tool。可以使用配置變數difftool.guiDefault自動選擇此項。--no-gui選項可用於覆蓋這些設定。如果未設定diff.guitool,我們將按merge.guitool、diff.tool、merge.tool的順序回退,直到找到一個工具。 - --trust-exit-code
- --no-trust-exit-code
-
預設情況下,diff 工具報告的錯誤會被忽略。使用
--trust-exit-code可使 git difftool 在呼叫的 diff 工具返回非零退出程式碼時退出。當使用
--trust-exit-code時,git difftool 會轉發所呼叫工具的退出程式碼。
請參閱 git-diff[1] 獲取支援選項的完整列表。
配置
git difftool 在 difftool 等效項未定義時,會回退到 git mergetool 配置變數。
本節中此行以上的所有內容均未包含在 git-config[1] 文件中。以下內容與該文件中的內容相同
- diff.tool
-
控制 git-difftool[1] 使用哪個 diff 工具。此變數覆蓋
merge.tool中配置的值。下面的列表顯示了有效的內建值。任何其他值都被視為自定義 diff 工具,並且需要定義相應的 difftool.<tool>.cmd 變數。 - diff.guitool
-
控制 git-difftool[1] 在指定 -g/--gui 標誌時使用的 diff 工具。此變數覆蓋
merge.guitool中配置的值。下面的列表顯示了有效的內建值。任何其他值都被視為自定義 diff 工具,並且需要定義相應的 difftool.<guitool>.cmd 變數。-
araxis
-
bc
-
codecompare
-
deltawalker
-
diffmerge
-
diffuse
-
ecmerge
-
emerge
-
examdiff
-
guiffy
-
gvimdiff
-
kdiff3
-
kompare
-
meld
-
nvimdiff
-
opendiff
-
p4merge
-
smerge
-
tkdiff
-
vimdiff
-
vscode
-
winmerge
-
xxdiff
-
- difftool.<tool>.cmd
-
指定呼叫指定 diff 工具的命令。指定的命令在 shell 中進行求值,並提供以下可用變數:LOCAL 設定為包含 diff 前像內容的臨時檔名,REMOTE 設定為包含 diff 後像內容的臨時檔名。
有關更多詳細資訊,請參閱 git-difftool[1] 中的
--tool=<tool> 選項。 - difftool.<tool>.path
-
覆蓋給定工具的路徑。當您的工具不在 PATH 中時,這很有用。
- difftool.trustExitCode
-
如果呼叫的 diff 工具返回非零退出狀態,則退出 difftool。
有關更多詳細資訊,請參閱 git-difftool[1] 中的
--trust-exit-code選項。 - difftool.prompt
-
在每次呼叫 diff 工具之前進行提示。
- difftool.guiDefault
-
設定
true以預設使用diff.guitool(等同於指定--gui引數),或設定auto以根據DISPLAY環境變數的值是否存在來選擇diff.guitool或diff.tool。預設值為false,此時必須顯式提供--gui引數才能使用diff.guitool。
另請參閱
- git-diff[1]
-
顯示提交之間、提交與工作樹之間等的更改
- git-mergetool[1]
-
執行合併衝突解決工具來解決合併衝突
- git-config[1]
-
獲取和設定儲存庫或全域性選項