Amending Commits

25.1 What Amending a Commit Means

Amending replaces the most recent commit with a new one. The commit hash changes, but the branch pointer moves forward as if the old commit never existed.

This is meant for local, unpublished commits only.

25.2 Amending the Commit Message

To change only the last commit message:
1git commit --amend

Git opens the editor to modify the message.

25.3 Amending to Add Forgotten Files

If you forgot to include files in the last commit:
1git add <file> 2git commit --amend

The new commit will include both old and new changes.

25.4 Amending Without Changing the Message

To keep the existing commit message:
1git commit --amend --no-edit

Useful when:
Fixing typos
Adding missing files
Minor corrections

25.5 Amending After Push (Why It's Dangerous)

Amending rewrites history. If the commit was already pushed:
The remote history diverges
Requires force push
Can break teammates' work
Avoid amending pushed commits on shared branches.

25.6 Amending vs New Commit

Use amend for small fixes to the latest commit
Use a new commit for logical, standalone changes
Avoid amending pushed commits on shared branches.

25.7 Key Takeaways

git commit --amend replaces the latest commit.
Amending changes the commit hash.
Safe only for local, unpushed commits.
--no-edit keeps the existing message.
Never amend commits already shared with others.