How to amend a commit without changing commit message (reusing the previous one)?
Solution 1:
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.
Solution 2:
git commit -C HEAD --amend
will do what you want. The -C
option takes the metadata from another commit.
Solution 3:
Another (silly) possibility is to git commit --amend <<< :wq
if you've got vi(m) as $EDITOR
.
Solution 4:
To extend on the accepted answer, you can also do:
git commit --amend --no-edit -a
to add the currently changed files.
Solution 5:
You can save an alias that uses the accepted answer so it can be used like this:
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"