【发布时间】:2020-08-14 00:42:30
【问题描述】:
使用 git log 有多种“选择”提交的方法。例如:
- How to list all commits that changed a specific file?
- How can I view a git log of just one user's commits?
还有很多其他的。
然而,所有这些都只显示在命令行上选择的提交。我想要的是查看我范围内的所有提交,但 highlight (带有颜色、标记或其他)这些提交的特定子集,例如更改特定文件或其他内容的提交。所以在做的时候:
git log --oneline master..@ -- path/to/frobnitz
而不是看到:
12ca6d863 foo
6166da1fd bar
894567343 baz
我会看到类似的东西:
46984ad11 (HEAD -> master) git is fun!
2e11a5382 cool beans
>> 12ca6d863 foo
60069036d whatever
d698663d0 something
>> 6166da1fd bar
3d2c811e3 more cool stuff
>> 894567343 baz
3d2c811e3 cool stuff
此外,ideal 解决方案适用于 --graph 模式,因为我还想查看所选提交的合并和分支上下文。
我还注意到git log 支持各种History Simplification 场景,在某些情况下这几乎可以让我得到我想要的,但很难弄清楚如何,也不是我想要的。我已经有了想要查看的历史记录,并且已经有了想要突出显示的提交。
我有一些想法,但我不喜欢其中任何一个:
编写脚本 - 运行两个 git 日志,然后使用其中一个的输出来装饰/操作另一个。这样做的缺点是它很脆弱,并且不适用于我可能提供给目标日志的不同选项集,例如
--graph对于“选定”提交,分配临时参考,例如
selectedcommits给他们,然后使用--decorate-refs=selectedcommits显示相关的提交。这看起来很乱。
【问题讨论】:
-
我认为只使用 git 是不可能的。
-
这将是一个不错的功能。也许您应该向 git 项目提交功能请求。
标签: git