Finish Feature
Process
- Verify Current Branch
Run git branch --show-current :
-
If main/master: Ask which feature branch to merge
-
If feature branch: Confirm this branch
- Check Working Directory
Run git status :
-
Uncommitted changes? Ask: commit or stash?
-
Clean? Proceed
- Store Feature Branch Name
FEATURE_BRANCH=$(git branch --show-current)
- Switch to Main
Determine main branch (git branch --list main master ), then:
git checkout main # or master
- Pull Latest
git pull origin main # or master
- Merge Feature Branch
git merge $FEATURE_BRANCH
Conflicts? List files via git status , wait for user resolution: git add .
- git commit
- Push
git push origin main # or master
- Delete Feature Branch?
Ask user:
Local:
git branch -d $FEATURE_BRANCH
Remote:
git push origin --delete $FEATURE_BRANCH
- Confirm Completion
Output:
-
Merged branch: <feature-branch-name>
-
Push status
-
Deletion status (if applicable)
Constraints
-
Pull main before merge
-
Verify clean working dir before branch switch
-
Never force push to main
-
User resolves conflicts
-
Always ask before deleting branches
Example
User: "Finish user-auth feature"
-
On feature/user-auth , git status clean
-
git checkout main && git pull origin main
-
git merge feature/user-auth && git push origin main
-
Ask: Delete branch? → User confirms
-
Output: "Feature 'user-auth' merged to main, pushed, branch deleted"