【问题标题】:git fixup: get hash of original commitgit fixup:获取原始提交的哈希
【发布时间】:2021-06-13 10:48:35
【问题描述】:
git rebase -i --autosquash 如何知道与修复相关的原始提交? git commit --fixup 创建的唯一“元数据”似乎是日志消息(“修复!”+原始消息)。原始提交哈希未存储在修复提交中的任何位置(至少,我不能从 git show --raw 看出)。
那么给定修复提交,我如何才能找到被修复的原始提交?
我问是因为git rebase 仍然希望你输入一个提交哈希,即使它应该从我想要<original-hash>^ 的修复中暗示;也许是一个别名。
【问题讨论】:
标签:
git
git-commit
git-rebase
【解决方案1】:
引用the doc:
--autosquash
--no-autosquash
当commit log消息以“squash!...”(或“fixup!...”)开头,并且todo列表中已经有一个commit匹配相同的...时,自动修改todo列表rebase -i 以便标记为压缩的提交在要修改的提交之后立即出现,并将移动提交的操作从pick 更改为squash(或fixup)。
[强调我的:]
如果提交主题匹配,或者如果 ... 指的是提交的哈希,则提交匹配 ...。
作为后备,提交主题的部分匹配也起作用。创建修复/壁球提交的推荐方法是使用 git-commit[1] 的 --fixup/--squash 选项。
注意“提交主题”是指“提交信息的第一行”——而不是“完整的提交信息”。