設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.49.1 → 2.50.1 無更改
-
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 命令,允許您使用通用差異工具比較和編輯修訂版之間的檔案。git difftool 是 git diff 的前端,接受相同的選項和引數。詳情請參閱 git-diff[1]。
選項
- -d
- --dir-diff
-
將修改後的檔案複製到臨時位置,並對它們執行目錄差異比較。在此模式下,啟動差異工具前不會進行提示。
- -y
- --no-prompt
-
啟動差異工具前不進行提示。
- --prompt
-
每次呼叫差異工具前進行提示。這是預設行為;提供此選項是為了覆蓋任何配置設定。
- --rotate-to=<file>
-
開始顯示給定路徑的差異,此路徑之前的路徑將移動到末尾並輸出。
- --skip-to=<file>
-
開始顯示給定路徑的差異,跳過此路徑之前的所有路徑。
- -t <tool>
- --tool=<tool>
-
使用 <tool> 指定的差異工具。有效值包括 emerge、kompare、meld 和 vimdiff。執行
git
difftool
--tool-help
以獲取有效 <tool> 設定的列表。如果未指定差異工具,git difftool 將使用配置變數
diff.tool
。如果配置變數diff.tool
未設定,git difftool 將選擇一個合適的預設值。您可以透過設定配置變數
difftool.
<tool>.path
顯式提供工具的完整路徑。例如,您可以透過設定difftool.kdiff3.path
來配置 kdiff3 的絕對路徑。否則,git difftool 假定該工具可在 PATH 中找到。除了執行已知的差異工具之外,git difftool 還可以透過在配置變數
difftool.
<tool>.cmd
中指定要呼叫的命令列來定製執行其他程式。當 git difftool 使用此工具呼叫時(透過
-t
或--tool
選項,或透過diff.tool
配置變數),將呼叫配置的命令列,並提供以下變數:$LOCAL
設定為包含差異預映象內容的臨時檔名稱,$REMOTE
設定為包含差異後鏡像內容的臨時檔名稱。$MERGED
是正在比較的檔名稱。提供$BASE
是為了與自定義合併工具命令相容,其值與$MERGED
相同。 - --tool-help
-
列印可與
--tool
一起使用的差異工具列表。 - --[no-]symlinks
-
當在
--dir-diff
模式下執行且比較的右側內容與工作樹中的檔案內容相同時,git difftool 的預設行為是建立指向工作樹的符號連結。指定
--no-symlinks
指示 git difftool 建立副本而不是符號連結。在 Windows 上,--no-symlinks
是預設設定。 - -x <command>
- --extcmd=<command>
-
指定用於檢視差異的自定義命令。當指定此選項時,git-difftool 將忽略配置的預設值,並執行 <command>
$LOCAL
$REMOTE
。此外,環境中會設定$BASE
。 - -g
- --[no-]gui
-
當 git-difftool 使用
-g
或--gui
選項呼叫時,預設差異工具將從配置的diff.guitool
變數中讀取,而不是diff.tool
。這可以透過配置變數difftool.guiDefault
自動選擇。--no-gui
選項可用於覆蓋這些設定。如果未設定diff.guitool
,我們將按merge.guitool
、diff.tool
、merge.tool
的順序回退,直到找到一個工具。 - --[no-]trust-exit-code
-
差異工具報告的錯誤預設被忽略。使用
--trust-exit-code
可使 git-difftool 在呼叫的差異工具返回非零退出程式碼時退出。當使用
--trust-exit-code
時,git-difftool 將轉發所呼叫工具的退出程式碼。
有關支援的選項的完整列表,請參閱 git-diff[1]。
配置
當差異工具的等效配置變數未定義時,git difftool 會回退到 git mergetool 的配置變數。
本節中此行以上的所有內容均未包含在 git-config[1] 文件中。以下內容與該文件中的內容相同
- diff.tool
-
控制 git-difftool[1] 使用的差異工具。此變數會覆蓋
merge.tool
中配置的值。以下列表顯示了有效的內建值。任何其他值都被視為自定義差異工具,並且需要定義相應的difftool.<tool>.cmd
變數。 - diff.guitool
-
當指定 -g/--gui 標誌時,控制 git-difftool[1] 使用的差異工具。此變數會覆蓋
merge.guitool
中配置的值。以下列表顯示了有效的內建值。任何其他值都被視為自定義差異工具,並且需要定義相應的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
-
指定呼叫指定差異工具的命令。指定的命令將在 shell 中執行,並提供以下變數:LOCAL 設定為包含差異預映象內容的臨時檔名稱,REMOTE 設定為包含差異後鏡像內容的臨時檔名稱。
有關更多詳細資訊,請參閱 git-difftool[1] 中的
--tool=
<tool> 選項。 - difftool.<tool>.path
-
覆蓋給定工具的路徑。這在您的工具不在 PATH 中時很有用。
- difftool.trustExitCode
-
如果呼叫的差異工具返回非零退出狀態,則退出 difftool。
有關更多詳細資訊,請參閱 git-difftool[1] 中的
--trust-exit-code
選項。 - difftool.prompt
-
每次呼叫差異工具前進行提示。
- 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]
-
獲取和設定倉庫或全域性選項