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