我经常想编辑提交消息,而不必从上次提交中重新选择文件集。
git commit file1.c file2.c
提交消息中的意外拼写错误。
git commit file1.c file2.c --amend
这可行,但我不想从原始提交中重新选择文件集,我曾经不小心这样做过git commit -a --amend
并无意中添加了许多更改。
我知道关于git rebase -i HEAD~1
然后替换pick
与 与r
(重述),但这最终需要几步。
有没有一种方法可以一步重新修改最后一次提交而不包含任何新文件?
修改消息而不进行分阶段更改
只要您的暂存区域没有进行任何更改,您就可以简单地使用
git commit --amend
to edit your previous commit's message1.
甚至修改消息with阶段性改变
但是,如果您do已经进行了更改,那么您可以使用--only
(or -o
) 标志结合--amend
仅编辑先前提交的消息,而不提交分阶段更改:
git commit --amend --only
git commit --amend -o # Shorter
这个选项是由大卫·翁加罗(David Ongaro)的回答.
文档
如中所述git commit文档(强调我的):
-o
--only
仅从命令行上指定的路径进行提交,忽略迄今为止已暂存的任何内容。这是
默认操作模式git 提交如果给出任何路径
在命令行上,在这种情况下可以省略此选项。如果
该选项与指定--amend,那么不需要路径
被指定,可以用来修改最后一次提交,而无需
提交已经上演的更改。
1As mentioned by Minitech and others.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)