gpt4 book ai didi

git - 如何让 git-diff 创建一个 "context"格式的 diff?

转载 作者:太空狗 更新时间:2023-10-29 12:45:42 26 4
gpt4 key购买 nike

我有一个 Git 存储库,我需要从中创建一个不同于默认 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 创建旧式“上下文”格式差异?

(我目前的计划是编写一个单行 shell 脚本,只用 $1 $2 调用真正的 diff,但我希望有一个不那么尴尬的方式。)

最佳答案

无需配置自定义 difftool,只需使用 -x 选项即可:

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

或者配置一个别名来使一个简单的“git cdiff”命令输出上下文风格的差异:

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

关于git - 如何让 git-diff 创建一个 "context"格式的 diff?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3129514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com