如何按合并日期查看Git分支的提交历史?
按合并时间排序Git分支历史的解决方法
核心方案:聚焦合并提交排序
要快速定位晚合并到指定分支的变更,优先关注**合并提交(merge commit)**即可——合并提交的提交时间就是变更被整合到目标分支的时间。
1. 仅显示合并提交并按合并时间降序排列
执行以下命令(将main替换为你的目标分支名):
git log --merges --pretty=format:"%cd %h %s" --date=iso main
--merges:仅筛选合并提交%cd:显示合并提交的时间(即合并到分支的时间)%h:显示短提交哈希%s:显示提交信息- 结果默认按时间降序排列,晚合并的记录会排在最前面
2. 查看合并提交的详细变更
找到目标合并提交的哈希后,用以下命令查看具体变更:
git show <merge-hash>
进阶方案:修复拓扑顺序无效问题
如果之前使用--topo-order无效,试试结合--first-parent选项,只追踪目标分支的主线提交(包括合并提交),确保历史严格按分支合并的先后顺序展示:
git log --first-parent --topo-order --pretty=format:"%cd %h %s" --date=iso main
--first-parent:只显示目标分支的第一父提交,忽略合并进来的分支的历史细节,聚焦主线的合并时间线
补充:全局提交按合并关联时间排序
如果需要查看所有提交(包括分支内的普通提交),并尽可能按合并相关时间排序,可以指定按提交者时间降序:
git log --sort=-committerdate --pretty=format:"%cd %h %s" --date=iso main
-committerdate:按提交者时间降序,合并提交的提交者时间就是合并时间,普通提交则显示原提交时间
内容的提问来源于stack exchange,提问作者daltairwalter
相关产品推荐
相关产品推荐

