MANDATORY: Use instead of `git commit --amend` - verifies HEAD and push status first
Scanned 2/12/2026
Install via CLI
openskills install cowwoc/cat---
name: git-amend
description: "MANDATORY: Use instead of `git commit --amend` - verifies HEAD and push status first"
---
# Git Amend Skill
**Purpose**: Safely amend the most recent commit with proper verification checks.
## Safety Rules
### Only Amend When ALL Conditions Are Met
1. **HEAD commit was created by you** in this session
2. **Commit has NOT been pushed** to remote
3. **You intend to modify HEAD** (not an earlier commit)
```bash
# Check if pushed:
git status
# Look for: "Your branch is ahead of 'origin/main' by X commits"
# "up to date" = already pushed (amending creates divergent history)
```
## Quick Workflow
```bash
# 1. Verify HEAD is the commit you want to amend
git log --oneline -1
# 2. Verify not pushed to remote
git status # Must show "ahead of origin"
# 3. Make your changes (edit files, stage new files)
git add <files>
# 4. Amend the commit
git commit --amend
# Or with new message:
git commit --amend -m "New message"
# Or keep same message:
git commit --amend --no-edit
```
## Common Use Cases
### Fix a typo in the last commit
```bash
# Edit the file
vim file.txt
# Stage and amend
git add file.txt
git commit --amend --no-edit
```
### Add forgotten file to last commit
```bash
git add forgotten-file.txt
git commit --amend --no-edit
```
### Change commit message only
```bash
git commit --amend -m "Better commit message"
```
## Dangerous Situations
```bash
# Only amend unpushed commits
git push origin main
git commit --amend # Creates divergent history!
# Only amend your own commits
git pull # Pulls teammate's commit
git commit --amend # Rewrites their work!
# If you must amend after push (with explicit permission):
git commit --amend
git push --force-with-lease # Safer than --force
```
## Amending Earlier Commits
To modify a commit that's NOT at HEAD, use interactive rebase:
```bash
# 1. Start interactive rebase
git rebase -i <commit>^ # Parent of commit to edit
# 2. Change 'pick' to 'edit' for the target commit
# 3. Make changes when rebase stops
git add <files>
git commit --amend
# 4. Continue rebase
git rebase --continue
```
## Error Recovery
```bash
# If amend was wrong, check reflog for original:
git reflog
git reset --hard HEAD@{1} # Go back to before amend
```
## Success Criteria
- [ ] Verified HEAD is the commit to amend
- [ ] Verified commit not pushed to remote
- [ ] Changes staged before amend
- [ ] Commit message is appropriate
- [ ] No force push required (unless explicitly intended)
No comments yet. Be the first to comment!