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.