ide*_*n42 4 git git-amend git-commit git-rewrite-history
通常我想编辑提交消息,而不必重新选择上次提交的文件集.
git commit file1.c file2.c
Run Code Online (Sandbox Code Playgroud)
提交消息中的意外错误.
git commit file1.c file2.c --amend
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我不想重新选择原始提交中的文件集,我曾经偶然做过git commit -a --amend并无意中添加了许多更改.
我知道git rebase -i HEAD~1然后替换pick为r(重新单词),但这最终只是几个步骤.
有没有办法在不包含任何新文件的情况下一步重写最后一次提交?
小智 7
只要您的暂存区域没有进行任何更改,您就可以使用
git commit --amend
Run Code Online (Sandbox Code Playgroud)
编辑您之前提交的消息1.
但是,如果您确实进行了更改,那么您可以结合使用--only(或-o)标志--amend来仅编辑上一次提交的消息,而不提交暂存的更改:
git commit --amend --only
git commit --amend -o # Shorter
Run Code Online (Sandbox Code Playgroud)
David Ongaro在他的回答中指出了这一选择.
如git commit文件中所述(强调我的):
Run Code Online (Sandbox Code Playgroud)-o --only仅从命令行中指定的路径进行提交,忽略到目前为止已暂存的任何内容.如果在命令行上给出了任何路径,则这是git commit的默认操作模式,在这种情况下,可以省略此选项.如果此选项与--amend一起指定,则不需要指定任何路径,这可以用于修改最后一次提交而不提交已经暂存的更改.
1 正如Minitech和其他人所提到的那样.
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |