问题描述
假设两个分支B和D共享一个共同的祖先提交A:
A -- B
\_ C -- D
在Sourcetree中,除了查看B和D(git diff B..D
)之间的变化外,还有一个选项可以反转diff中的块和线,即将B和D之间的差异更改应用于提交B或反之亦然。
使用Sourcetree反转差异中的块没有引起任何冲突,但是我在命令行中使用git revert B..D
的尝试导致了冲突。有没有一种方法可以通过命令行完成此操作而不会引起冲突?
解决方法
从差异输出创建补丁并应用它:
git checkout B
git diff B..D > temp.patch
git apply temp.patch
rm temp.patch
# select hunks
git add -p