bash - 如何显示 HEAD 和 origin/master(或最新的共同祖先)之间的所有提交
问题描述
我所期望的是一个 git 命令,它向我显示所有从最新的共同祖先开始HEAD
和返回的提交。origin/master
有时这很有效:
git log --oneline origin/master^..HEAD
太好了,如果HEAD
不直接回到,它甚至会停在最后一个共同祖先处origin/master
。
但很多时候它随机无法按预期工作,并且行数在行之后甚至更远origin/master
(行为通常在之后发生变化git fetch
)。
我的解决方案是这个解决方法:
git log --pretty=format:'%C(auto)%h %C(magenta)%cd %C(blue)%an%C(auto)%d %C(reset)%s' origin/master^..HEAD | grep --color=always -B 1000 'origin/master'
但我不喜欢它有两个原因:
- 它迫使我不使用
--oneline
我真正想继续使用的颜色(grep
不能很好地与--oneline
grep 一起使用,grep with 的结果--oneline
根本没有输出,可能是因为--oneline
's 颜色,不确定)。 - 使用 grep 使我失去所有颜色,尽管使用
--colors=always
它根本没有效果,所以我最终得到无色输出。 - 尽管我可以想象没有任何有用的流程需要除 之外的值
1000
,但我在其中放置了一个常量让我感到困扰,命令行不应该使用常量来实现我想要的。
(我的 grep 版本是3.4
,我的 git 版本是2.25.1
)
解决方案
尝试 :
git log --graph --oneline --ancestry-path origin/master^..HEAD
--ancestry-path
将仅选择既是 的父级HEAD
又是 的子级的origin/master^
提交,因此来自合并于 的分支的提交origin/master
将被忽略。
您也可以尝试跳过^
after origin/master
,并添加--boundary
:
git log --graph --oneline --ancestry-path --boundary origin/master..HEAD
推荐阅读
- scala - 如何将 Free monad 转换为 Free applicatives
- python - 如何将本地保存的图像添加到 python 中的绘图图形?
- javascript - 它作为组合值传递 4,5,6
- haskell - GHC 多包版本警告的严重性
- ssis - 将可变长度记录解析为表列,其中特定列在 SSIS 2016 中是动态的
- c# - 如何从 azure 函数获取 json 对象的输出?
- ios - 使用 OTA 在 iOS 13 上注册到用户注册模式时出现“服务器返回用户注册配置文件”错误
- python - Pyspark 丢弃没有过滤器的 RDD 行
- swift - 如何保持 UISlider 拇指小但分辨率更高的照片?
- typescript - 如何在类型包装器(映射类型)中转发(众所周知的)符号?