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?
This question is related to
git
commit
git-commit
git-amend
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.
git commit -C HEAD --amend
will do what you want. The -C
option takes the metadata from another commit.
To extend on the accepted answer, you can also do:
git commit --amend --no-edit -a
to add the currently changed files.
Another (silly) possibility is to git commit --amend <<< :wq
if you've got vi(m) as $EDITOR
.
Using the accepted answer to create an alias
oops = "!f(){ \
git add -A; \
if [ \"$1\" == '' ]; then \
git commit --amend --no-edit; \
else \
git commit --amend \"$@\"; \
fi;\
}; f"
then you can do
git oops
and it will add everything, and amend using the same message
or
git oops -m "new message"
to amend replacing the message
Source: Stackoverflow.com