如何让git-diff创建一个“context”格式的diff?
我有一个Git仓库,我需要用默认的git diff
格式创建一个补丁文件。我的用例是我有一个笨重的旧OSF/1机器,我需要应用该补丁,并且那里的程序不理解统一差异。如何让git-diff创建一个“context”格式的diff?
如果我使用GIT_EXTERNAL_DIFF=diff
,希望我可以再使用GIT_DIFF_OPTS=-c
请求上下文格式差异,那么我的(现代)diff
程序抱怨它的命令行上关于额外的参数:
diff: extra operand `373e5907b789a1398a91f4ceb4ab14e8a0ed4282'
diff: Try `diff --help' for more information.
external diff died, stopping at [filename].
设置GIT_EXTERNAL_DIFF=echo
显示, Git的似乎与运行外部diff程序:
$GIT_EXTERNAL_DIFF <file2> <file1> <hash> <mode> <tmpfilename> <hash> <mode>
这混淆diff
不希望额外的参数。有没有简单的方法来告诉git diff
创建一个旧式的“上下文”格式比较?
(我目前的计划是写调用真正diff
只有$1 $2
一行代码的shell脚本,但我希望有一个不太尴尬的方式。)
配置一个difftool做你想:
$ git config difftool.ctxdiff.cmd 'diff $LOCAL $REMOTE'
$ git difftool -y -t ctxdiff HEAD~4..HEAD
无需配置自定义difftool,只需使用-x选项:
$ git difftool -y -x "diff -c" | less
或配置一个别名做一个简单的“混帐电容Cdiff”命令输出上下文风格的差异:
$ git config --global alias.cdiff 'difftool -y -x "diff -c"'
$ git cdiff | less
你能解释我如何得到他的两个提交的上下文比较。让我们说相关的提交哈希是'b299g2'和'f242g3'? – 2016-11-30 04:58:38
为什么我们插入''diff -c“'作为选项 – 2017-01-18 05:23:03
如果我们需要得到上下文格式差异其间2个提交,我们在哪里需要淘汰旧提交新犯, 'git difftool -y -t ctxdiff oldCommitHash newCommitHash' – 2016-12-07 06:11:36