有没有一种方法可以在没有vi(或您的$EDITOR)弹出修改提交消息的选项的情况下修改提交,而是简单地重用前一条消息?
vi
$EDITOR
git commit -C HEAD --amend将做您想做的事情。-C选项从另一个提交中获取元数据。
git commit -C HEAD --amend
-C
从Git1.7.9开始,您也可以使用git commit --amend --no-edit来获取结果。
1.7.9
git commit --amend --no-edit
请注意,这将不包括来自其他提交的元数据,例如时间戳或标记,这可能对您很重要,也可能不重要。
另一个(愚蠢的)可能性是git commit --amend <<< :wq,如果你有vi(m)作为$EDITOR。
git commit --amend <<< :wq
要扩展已接受的答案,您还可以执行以下操作:
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
git add /path/to/modified/filesgit commit --amend --no-edit
如果您忘记在上次提交中添加一些更改,或者当您想通过重用上次提交而不创建新提交来添加更多更改时,这尤其有用。
一旦您完成代码中的更改。
1.-git status检查terminal的变化;
git status
terminal
2.-使用git add .或git add /your.file/逐个文件保存更改,使用上一个命令将在最后一个选项中帮助您;
git add .
git add /your.file/
3.-一旦您的更改被暂存,您现在可以使用git commit --amend --no-edit。这将在不编辑消息的情况下将您最近的更改添加到您的上次提交中。
4.-最后,如果你没有推送你之前的提交,只需做一个git push或git push origin/yourBranch。如果您已经推送了最后一次提交,请使用git push -f或git push -f origin/yourBranch。
git push
git push origin/yourBranch
git push -f
git push -f origin/yourBranch