如何查找最新的Git squash合并提交?
查找Git中的Squash提交
查找最新的Squash提交
通过git merge --squash创建的提交本质是普通的非合并提交,它没有Git内置的特殊标记,主要通过以下两种方式定位:
通过提交信息关键词筛选
如果你的squash提交保留了默认提交信息(通常包含"squash"或"Squash commit"字样),直接用git log的关键词匹配功能即可:git log --grep="squash" --oneline输出结果最顶部的就是最新的squash提交。如果自定义了提交信息,替换关键词为你当时写的标识(比如合并的分支名)即可。
结合分支历史定位
若不记得提交信息关键词,可以结合被合并分支的历史查找。假设你是把feature-branchsquash合并到main分支:- 先找到
feature-branch的根提交(分支创建时的起点):git merge-base main feature-branch - 再在
main分支中查找包含该根提交之后所有变更的提交,这就是目标squash提交:
输出里的第一个提交通常就是最新的squash合并结果。git log main --not $(git merge-base main feature-branch) --oneline
- 先找到
查找倒数第二个合并/Squash提交
如果已经能列出所有目标提交,只需调整git log的输出数量即可。比如用-2参数输出最近的2个,取第二个就是倒数目标:
git log --grep="squash" --oneline -2
针对普通合并提交(带两个父节点的),可以用--merges参数单独筛选:
git log --merges --oneline -2
内容的提问来源于stack exchange,提问作者Klas Mellbourn
相关产品推荐
相关产品推荐

