Curriculum
Course: Git
Login
Text lesson

Git Amend

Git commit –amend

The git commit –amend command is used to modify the most recent commit by combining changes in the staging area with it and creating a new commit. This new commit completely replaces the previous one.

Git Amend Commit Message

One of the simplest uses of –amend is to change a commit message.

Let’s update the README.md and commit the changes.

Example

[user@localhost] $

git commit -m "Adding plines to reddme"
[master 07c5bc5] Adding plines to reddme
1 file changed, 3 insertions(+), 1 deletion(-)

Now, let’s review the log.

Example

[user@localhost] $

git log --oneline
07c5bc5 (HEAD -> master) Adding plines to reddme
9a9add8 (origin/master) Added .gitignore
81912ba Corrected spelling error
3fdaa5b Merge pull request #1 from code7school-test/update-readme
836e5bf (origin/update-readme, update-readme) Updated readme for GitHub Branches
daf4f7c (origin/html-skeleton, html-skeleton) Updated index.html with basic meta
facaeae (gh-page/master) Merge branch 'master' of https://github.com/code7school-test/hello-world
e7de78f Updated index.html. Resized image
5a04b6f Updated README.md with a line about focus
d29d69f Updated README.md with a line about GitHub
e0b6038 merged with hello-world-images after fixing conflicts
1f1584e added new image
dfa79db updated index.html with emergency fix
0312c55 Added image to Hello World
09f4acd Updated index.html with a new line
21ec6e First release of Hello World!

Oh no! The commit message is full of spelling errors. Embarrassing. Let’s correct that with an amendment.

Example

[user@localhost] $

git commit –amend -m “Added lines to README.md”
[master eaa69ce] Added lines to README.md
 Date: Thu Apr 22 12:18:52 2021 +0200
 1 file changed, 3 insertions(+), 1 deletion(-))

And then review the log again.

Example

[user@localhost] $

git log –oneline
eaa69ce (HEAD -> master) Added lines to README.md
9a9add8 (origin/master) Added .gitignore
81912ba Corrected spelling error
3fdaa5b Merge pull request #1 from code7school-test/update-readme
836e5bf (origin/update-readme, update-readme) Updated readme for GitHub Branches
daf4f7c (origin/html-skeleton, html-skeleton) Updated index.html with basic meta
facaeae (gh-page/master) Merge branch ‘master’ of https://github.com/code7school-test/hello-world
e7de78f Updated index.html. Resized image
5a04b6f Updated README.md with a line about focus
d29d69f Updated README.md with a line about GitHub
e0b6038 merged with hello-world-images after fixing conflicts
1f1584e added new image
dfa79db updated index.html with emergency fix
0312c55 Added image to Hello World
09f4acd Updated index.html with a new line
221ec6e First release of Hello World!

We can see that the previous commit has been replaced with our amended one!

Warning: Altering the commit history can be risky. While it’s generally safe to make such changes in your own local repository, you should avoid rewriting history in remote repositories, particularly if others are working with them.

Git Amend Files

Adding files with –amend works the same way as described earlier. Simply add the files to the staging area before committing.