我正在寻找确切的命令,以基于暂存分支的提示列出所有未合并到我的分支中的现有分支(包括来自提取的远程分支)的所有提交。
git log --all --remotes
我用它列出所有分支。
如何排除登台分支中已经存在的那一次?
答案 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将该提交的父级放入队列,然后访问队列中的下一个提交(除非像以前一样被排除在外)。