列出比我的登台分支新的分支(来自所有分支,包括获取的远程分支)的所有新提交?

时间:2018-07-26 20:40:13

标签: git

我正在寻找确切的命令,以基于暂存分支的提示列出所有未合并到我的分支中的现有分支(包括来自提取的远程分支)的所有提交。

git log --all --remotes我用它列出所有分支。

如何排除登台分支中已经存在的那一次?

1 个答案:

答案 0 :(得分:1)

使用git log --branches --remotes ^staging,或等效地使用git log ^staging --branches --remotes

如果您指的是所有参考文献(包括标签,注释,--all等),则可以使用refs/stash,但是您专门说了分支和远程跟踪名称, --branches--remotes产生正确的匹配。请注意,--branches后跟--remotes=<pattern>可以匹配特定的名称模式。

这里的窍门是,否定语法(^X--not后跟X)告诉修订版本代码排除名为X的提交和任何可从X提交的提交。正引用给git log位置以开始; 负引用给git log位置以停止; git log然后遍历优先级队列包含尚未被访问的提交。因此,最初,队列以某种顺序查看所有分支提示和所有远程跟踪名称提示(包含其哈希ID)。 Git会访问第一个此类提交,除非它被排除在外,即位于staging的顶端或可以从staging的顶端访问。 Git将该提交的父级放入队列,然后访问队列中的下一个提交(除非像以前一样被排除在外)。