繁体   English   中英

使用Git的耐心差异算法进行交互式添加

[英]Use Git's patience diff algorithm for interactive add

我想将git add -p与Git的耐心差异算法(如果使用--patience参数调用git diff得到的--patience )一起使用。 我怎样才能做到这一点?

背景:我正在处理一些XML文件,并且git diff的常规算法由于“未对齐”的进入/退出标签而产生了非常差的差异 如果我运行git diff --patience ,我会得到更多有用的diff,但是没有明显的方法在git add -p使用这些diff。

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

git config --global diff.algorithm patience

Git 1.8.2的新功能。

这对我有用:

git -c diff.algorithm=patience add -p [...]

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

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

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 diff 在重建自己的本地分支机构以进行生产集成时,我经常会这样做。

看起来您也可以将其用作合并策略,因此可能是这样的情况,而不是交互式添加差异,您可以简单地创建具有所需内容的分支,然后将其合并。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM