[英]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.