How to amend a commit without changing commit message (reusing the previous one)?

GitCommitGit CommitGit Amend

Git Problem Overview


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?

Git Solutions


Solution 1 - Git

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

git commit -C HEAD --amend will do what you want. The -C option takes the metadata from another commit.

Solution 3 - Git

Another (silly) possibility is to git commit --amend <<< :wq if you've got vi(m) as $EDITOR.

Solution 4 - Git

To extend on the accepted answer, you can also do:

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

to add the currently changed files.

Solution 5 - Git

You can save an alias that uses the accepted answer so it can be used like this:

git opps

adds everything, and amends using the same commit message

git oops -m "new message"

uses a new commit message.


This is the alias:

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

Solution 6 - Git

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSridhar SarnobatView Question on Stackoverflow
Solution 1 - GitShaggieView Answer on Stackoverflow
Solution 2 - GitAndy RossView Answer on Stackoverflow
Solution 3 - GitgalvaView Answer on Stackoverflow
Solution 4 - GitRambatinoView Answer on Stackoverflow
Solution 5 - GitaljgomView Answer on Stackoverflow
Solution 6 - GitpiousonView Answer on Stackoverflow