簡體   English   中英

如何讓git-diff創建一個“上下文”格式diff?

[英]How to make git-diff create a “context” format diff?

我有一個Git repo,我需要用默認的git diff格式創建一個補丁文件。 我的用例是我有一個笨重的舊OSF / 1機器,我需要應用補丁,而/bin/patch程序不能理解統一的差異。

如果我使用GIT_EXTERNAL_DIFF=diff ,希望我可以使用GIT_DIFF_OPTS=-c來請求上下文格式diff,那么我的(現代) diff程序會在其命令行上抱怨額外的參數:

diff: extra operand `373e5907b789a1398a91f4ceb4ab14e8a0ed4282'
diff: Try `diff --help' for more information.
external diff died, stopping at [filename].

設置GIT_EXTERNAL_DIFF=echo表明Git似乎運行外部差異程序:

$GIT_EXTERNAL_DIFF <file2> <file1> <hash> <mode> <tmpfilename> <hash> <mode>

這會混淆不需要額外參數的diff 有沒有一種簡單的方法來告訴git diff創建一個舊式的“上下文”格式diff?

(我目前的計划是編寫一個單線程shell腳本,只用$1 $2調用真正的diff ,但我希望有一種不那么尷尬的方式。)

無需配置自定義difftool,只需使用-x選項:

$ git difftool -y -x "diff -c" | less

或者配置別名以使簡單的“git cdiff”命令輸出上下文樣式的diff:

$ git config --global alias.cdiff 'difftool -y -x "diff -c"'
$ git cdiff | less

配置difftool以執行您想要的操作:

$ git config difftool.ctxdiff.cmd 'diff $LOCAL $REMOTE'
$ git difftool -y -t ctxdiff HEAD~4..HEAD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM