Git日志无法在指定提交哈希终止,如何获取两提交间的提交哈希?
Git Log 无法在指定提交处终止的解决方案
问题根源
你在命令里同时指定了分支feature/Collaudo和提交范围,Git会优先遍历该分支的完整提交历史,提交范围的限制被忽略了,这就是日志停不下来的原因。
修正后的命令
要获取hash1到hash2之间(含两端)的所有合并提交哈希,直接使用提交范围即可,无需额外指定分支:
git log --merges --oneline --pretty=tformat:"%H" hash1^..hash2
- 若不需要包含hash1,去掉
^用hash1..hash2(左开右闭范围) - 另一种等价写法是
hash1 hash2^!,明确表示从hash1开始到hash2结束的所有提交
验证步骤
如果不确定范围是否正确,可以先简化命令测试:
git log --oneline hash1..hash2
确认输出的提交范围符合预期后,再添加--merges和格式化参数。
关于--no-walk的说明
--no-walk仅用于查看单个提交(比如git log --no-walk hash2),不适合范围查询,所以之前添加这个参数无效是正常的。
内容的提问来源于stack exchange,提问作者Gennaro Cirillo
相关产品推荐
相关产品推荐

