首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Git的patience diff算法进行交互式添加

使用Git的patience diff算法进行交互式添加
EN

Stack Overflow用户
提问于 2012-09-14 21:24:25
回答 3查看 3.2K关注 0票数 21

我想在git add -p中使用Git的patience diff算法(如果使用--patience参数调用git diff,就会得到这个算法)。我该怎么做呢?

背景:我正在处理一些XML文件,以及git diff的标准算法produces pretty poor diffs due to "misaligned" entry/exit tags。如果我运行git diff --patience,我会得到更多有用的差异,但在git add -p中没有明显的方法来使用这些差异。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-11 15:45:53

git add -p当前拒绝diff标志,但您可以使用diff.algorithm配置选项:

代码语言:javascript
复制
git config --global diff.algorithm patience

Git 1.8.2中的新特性。

票数 37
EN

Stack Overflow用户

发布于 2014-09-11 00:13:59

这对我很有效:

代码语言:javascript
复制
git -c diff.algorithm=patience add -p [...]

我在Cygwin中运行最新的git v2.1.0。

票数 14
EN

Stack Overflow用户

发布于 2012-09-14 21:37:47

嗯..。您可以做的一件事是通过管道将git diff的输出传输到一个临时位置,然后使用git apply将其读回

代码语言:javascript
复制
git diff --patience <commitA> <commitB> > /tmp/patch.out
# checkout a new branch or otherwise do what you need to prep
git apply < /tmp/patch.out

这会将diff的输出应用到工作目录,但不会提交或暂存更改。然后,您可以像往常一样运行git add -p--patience差异将是您以交互方式添加的更改。

如果diff更适合您的工作流程,那么您没有理由不能将它直接传输到apply。这是我在为生产集成而重建自己的本地分支时经常做的事情。

看起来您还可以将其用作merge strategy,,因此可能的情况是,您可以简单地创建一个包含您想要的分支,然后将其合并进去,而不是交互地添加diffs。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12425511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档