git - 与 git 进行多分支差异?

标签 git branch diff

是否有一种简单的方法可以使用 git 获取多个(两个以上)分支之间的差异? (类似于“ Octopus 差异”?)

情况是,有一个分支(称为分支 A)是多个其他分支(称为 B 和 C)以及其他修改 merge 的结果。 (分支 A 与分支 B 分离,进行了许多本地修改,然后 merge 了分支 C,随后进行了更多本地修改,然后进行了更多本地修改并重新 merge 以包含 B 和 C 分支上的更新。)

我想做的是查看分支 A 特有的所有本地更改 - 也就是说,查看对分支 A 所做的哪些更改不在分支 B 或分支 C 上。

最佳答案

从 B 中创建一个分支“bPlusC”,然后 merge “C”。与“A”进行比较。

git checkout -b bPlusC B
git merge --no-ff C
git checkout A
git diff bPlusC..HEAD

编辑:基于 R.M. 的评论:

如果 B 或 C 的提交不在 A 中,请使用此:

git checkout -b bPlusC $(git merge-base A B)
git merge --no-ff $(git merge-base A C)
git checkout A
git diff bPlusC..HEAD

关于git - 与 git 进行多分支差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27927451/

相关文章:

Git 从现有的 repos 中将子模块添加到 super 项目

git - 浏览 git 暂存区的磁盘使用情况

python - 如何使用最新版本的 pip 下载或安装 Gitlib 作为独立库?

linux - 如何列出 Mercurial 中属于不同分支的所有文件?

multithreading - diff 文件夹递归与多线程

visual-studio-2010 - 致命 : bad config value for 'color.diff' in . gitconfig 的解决方案是什么?

version-control - P4v 集成错误

svn - 从主干中的更改创建 SVN 分支

C++ 基于行的统一差异库

linux - 如何在 Linux 中比较二进制文件的前 N ​​个字节