Git operations
Git command patterns, branching strategy, and safety protocols. TRIGGER when: managing branches, resolving merge conflicts, or running commit/merge/push operations. SKIP: worktree lifecycle and isolation recovery (use worktree-management); CI automation (use github-actions-template).From its SKILL.md
npx -y skills add komluk/scaffolding --skill git-operationsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.9 KB, as published. Nobody here has run it
Git Operations Skill
Purpose
Core git command patterns, branching strategies, and safety protocols for a project.
Current branch: !git branch --show-current 2>/dev/null || true
Branching Convention
| Branch Pattern | Purpose |
|---|---|
main | Production branch, always stable |
scaffolding/{task_id[:12]} | Worktree task branches (auto-created) |
backup/{task_id[:12]} | Safety backup before destructive ops |
Safe Operation Patterns
Before Any Destructive Operation
git status
git stash list
git log --oneline -5
git branch backup/$(date +%s) HEAD
Merge Strategy
git merge --no-commit --no-ff branch_name
git diff --cached --stat
git merge --continue # or --abort
Conflict Resolution
git diff --name-only --diff-filter=U
git checkout --ours path/to/file # keep ours
git checkout --theirs path/to/file # keep theirs
Cherry-Pick
git cherry-pick --no-commit <commit>
git diff --cached --stat
git cherry-pick --continue
Common Error Patterns
| Error | Fix |
|---|---|
fatal: not a git repository | Verify path, check .git exists |
CONFLICT (content) | Use conflict resolution protocol |
cannot lock ref | Wait and retry, check stale locks |
worktree is not clean | Stage+commit or stash |
Push Operations
Standard Push (after workflow)
# 1. Verify unpushed commits exist
git log --oneline origin/main..HEAD
# 2. Push to remote
git push origin main
# 3. Verify push succeeded
git log --oneline origin/main..HEAD # should be empty
Push Safety Rules
- NEVER use
--forceor--force-with-leasewithout explicit user confirmation - Always verify unpushed commits BEFORE push
- Always verify push success AFTER push
- If push fails due to divergence, report to user -- do NOT auto-rebase
Finishing Flow
After work is complete on a branch, execute one of these four actions based on context.
Merge to Main
git checkout main
git merge --ff-only <branch> # try fast-forward first
# if ff fails: git merge --no-ff <branch>
git branch -d <branch>
git worktree remove .scaffolding/worktrees/<task_id> 2>/dev/null
git worktree prune
Create PR
git push -u origin <branch>
gh pr create --title "<title>" --body "<body>"
# keep branch and worktree
Keep Branch
# no action needed -- branch stays as-is
git push -u origin <branch> # optional: push to remote for safety
Discard Branch
git checkout main
git worktree remove .scaffolding/worktrees/<task_id> 2>/dev/null
git branch -D <branch>
git worktree prune