如何在不更改提交消息的情况下修改提交(重用前一个)?

有没有一种方法可以在没有vi(或您的$EDITOR)弹出修改提交消息的选项的情况下修改提交,而是简单地重用前一条消息?

263101 次浏览

git commit -C HEAD --amend将做您想做的事情。-C选项从另一个提交中获取元数据。

从Git1.7.9开始,您也可以使用git commit --amend --no-edit来获取结果。

请注意,这将不包括来自其他提交的元数据,例如时间戳或标记,这可能对您很重要,也可能不重要。

另一个(愚蠢的)可能性是git commit --amend <<< :wq,如果你有vi(m)作为$EDITOR

要扩展已接受的答案,您还可以执行以下操作:

git commit --amend --no-edit -a

添加当前更改的文件。

你可以保存一个使用公认的答案别名,这样它就可以像这样使用:

git oops

添加所有内容,并使用相同的提交消息进行修改

git oops -m "new message"

使用新的提交消息。


这是别名:

 oops = "!f(){ \git add -A; \if [ \"$1\" == '' ]; then \git commit --amend --no-edit; \else \git commit --amend \"$@\"; \fi;\}; f"

只是为了增加一些清晰度,你需要使用git add进行更改,然后修改最后一次提交:

git add /path/to/modified/filesgit commit --amend --no-edit

如果您忘记在上次提交中添加一些更改,或者当您想通过重用上次提交而不创建新提交来添加更多更改时,这尤其有用。

傻瓜的完整教程

一旦您完成代码中的更改。

1.-git status检查terminal的变化;

2.-使用git add .git add /your.file/逐个文件保存更改,使用上一个命令将在最后一个选项中帮助您;

3.-一旦您的更改被暂存,您现在可以使用git commit --amend --no-edit。这将在不编辑消息的情况下将您最近的更改添加到您的上次提交中。

4.-最后,如果你没有推送你之前的提交,只需做一个git pushgit push origin/yourBranch
如果您已经推送了最后一次提交,请使用git push -fgit push -f origin/yourBranch