How to amend a commit without changing commit message (reusing the previous one)?
-
01-06-2021 - |
Question
Is there a way to amend a commit without vi
(or your $EDITOR
) popping up with the option to modify your commit message, but simply reusing the previous message?
Solution
Since git 1.7.9 version you can also use git commit --amend --no-edit
to get your result.
Note that this will not include metadata from the other commit such as the timestamp which may or may not be important to you.
OTHER TIPS
git commit -C HEAD --amend
will do what you want. The -C
option takes the metadata from another commit.
Another (silly) possibility is to git commit --amend <<< :wq
if you've got vi(m) as $EDITOR
.
To extend on the accepted answer, you can also do:
git commit --amend --no-edit -a
to add the currently changed files.
I use an alias that uses the accepted answer. Then this command can be used:
git oops
will add everything, and amend using the same message
git oops -m "new message"
will amend replacing the message
This is the alias
oops = "!f(){ \
git add -A; \
if [ \"$1\" == '' ]; then \
git commit --amend --no-edit; \
else \
git commit --amend \"$@\"; \
fi;\
}; f"
just to add some clarity, you need to stage changes with git add
, then amend last commit:
git add /path/to/modified/files
git commit --amend --no-edit
This is especially useful for if you forgot to add some changes in last commit or when you want to add more changes without creating new commits by reusing the last commit.