Git commit

From NovaOrdis Knowledge Base
Jump to: navigation, search

External

Internal

Overview

Apply Extra Changes to the Last Commit

If you are in the situation where you committed changes on your current branch, but then you worked a little bit more and want to include these latest changes into the last commit, you can use an "amend commit". An amend commit rplaces the tip of the current branch by creating a new commit. The recorded tree is prepared as usual and the message from the original commit is used as the starting point, instead of an empty message, when no other message is specified from the command line via -m. The new commit has the same parents and author as the current one. This is equivalent with committing one more time and squashing the last two commits with git rebase -i HEAD~1:

git add .
git commit --amend [ --no-edit]

By default, without --no-edit, an interactive editor will be launched to give the committer the possibility to amend the commit message as well. To avoid starting an editor, use " --no-edit".

Possible History Rewrite:


If the last, existing commit that has been amended was pushed in a remote repository, you will need to overwrite it in the remote repository - thus rewriting history - with:
 git push --force

This is not necessary if the last commit was not pushed yet.

Update a Commit Message that Has Not Been Pushed Yet

git commit --amend

It will start an interactive editor.

Update the Commit Message of a Specific Commit

git rebase -i "<commit-id>^"

Note the caret at the end, this is needed because you will need to rebase back to the commit before the one you wish to modify.

In the interactive editor, replace "pick" with "e" ("edit") for the commit you wish to change.

The git rebase procedure will exit and allow you to:

You can amend the commit now, with

  git commit --amend

Once you are satisfied with your changes, run

  git rebase --continue

Execute:

git commit --amend

interactively update the comment, then

git rebase --continue

Deleting Commits from History

Deleting Commits from History