如何看哪一个分支中的提交不在另一个分支中?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (47)

我有两个分支develnext。在devel中,我有一个或多或少的大量提交。此外,我添加了一些提交到下一个合并到devel

现在我想看看缺少什么next,所以我可以在将它们带到之前详细测试这些更改next。我的问题是现在,我怎么能看到哪些提交是在devel但不在接下来呢?

提问于
用户回答回答于

少用命令git cherry显示尚未被挑选的提交。文档git cherry在这里,但总之,你应该能够做到:

git checkout devel
git cherry next

...并看到输出有点像这样:

+ 492508acab7b454eee8b805f8ba906056eede0ff
- 5ceb5a9077ddb9e78b1e8f24bfc70e674c627949
+ b4459544c000f4d51d1ec23f279d9cdb19c1d32b
+ b6ce3b78e938644a293b2dd2a15b2fecb1b54cd9

开始的提交+将是你还没有挑选出来的提交next。在这种情况下,我至今只挑选了一个提交。你可能需要将该-v参数添加到该git cherry命令,以便它还输出每个提交的主题行。

用户回答回答于

另外,你可以使用

git log --left-right --graph --cherry-pick --oneline devel...next

以获得不在分支之间共享的实际不同提交的好列表。

操作词是 --cherry-pick

--cherry-pick 当提交集合受到对称差异限制时,省略任何提交引入与“另一侧”上的另一个提交相同的更改的提交。例如,如果您有两个分支A和B,则通常只列出所有提交的一种方式是使用--left-right,就​​像上面关于该选项描述的示例一样。但是它显示了从其他分支樱桃挑选的提交(例如,“分支A的樱桃挑选”可能是“b上的第三个”)。使用这个选项,这样的提交对将从输出中排除。

扫码关注云+社区