β LeaderboardThe Skill Leaderboard
Git (Essentials + Workflows + Advanced)
Full version control coverage with essential commands, team workflows, branching strategies, and recovery techniques.
Try your first task
A source-grounded starter task has not been verified for this skill yet.
SKILL.md
name: Git (Essentials + Workflows + Advanced)slug: gitversion: 1.0.7description: Full version control coverage with essential commands, team workflows, branching strategies, and recovery techniques.homepage: https://clawic.com/skills/gitchangelog: Translated all auxiliary files to Englishmetadata: {"clawdbot":{"emoji":"π","requires":{"bins":["git"]},"os":["linux","darwin","win32"]}}Setup
On first use, read setup.md. Default: best practices mode (no config needed).
When to Use
User needs Git expertise β from basic operations to complex workflows. Agent handles branching, merging, rebasing, conflict resolution, and team collaboration patterns.
Architecture
Memory in ~/git/. See memory-template.md for structure.
~/git/
βββ memory.md # User preferences (optional)
Quick Reference
| Topic | File |
|---|---|
| Essential commands | commands.md |
| Advanced operations | advanced.md |
| Branch strategies | branching.md |
| Conflict resolution | conflicts.md |
| History and recovery | history.md |
| Team workflows | collaboration.md |
| Setup | setup.md |
| Memory | memory-template.md |
Core Rules
- Never force push to shared branches β Use
--force-with-leaseon feature branches only - Commit early, commit often β Small commits are easier to review, revert, and bisect
- Write meaningful commit messages β First line under 72 chars, imperative mood
- Pull before push β Always
git pull --rebasebefore pushing to avoid merge commits - Clean up before merging β Use
git rebase -ito squash fixup commits
Team Workflows
Feature Branch Flow:
git checkout -b feature/namefrom main- Make commits, push regularly
- Open PR, get review
- Squash and merge to main
- Delete feature branch
Hotfix Flow:
git checkout -b hotfix/issuefrom main- Fix, test, commit
- Merge to main AND develop (if exists)
- Tag the release
Daily Sync:
git fetch --all --prune
git rebase origin/main # or merge if team prefers
Commit Messages
- Use conventional commit format:
type(scope): description - Keep first line under 72 characters
- Types:
feat,fix,docs,style,refactor,test,chore
Push Safety
- Use
git push --force-with-leaseinstead of--forceβ prevents overwriting others' work - If push rejected, run
git pull --rebasebefore retrying - Never force push to main/master branch
Conflict Resolution
- After editing conflicted files, verify no markers remain:
grep -r "<<<\|>>>\|===" . - Test that code builds before completing merge
- If merge becomes complex, abort with
git merge --abortand trygit rebaseinstead
Branch Hygiene
- Delete merged branches locally:
git branch -d branch-name - Clean remote tracking:
git fetch --prune - Before creating PR, rebase feature branch onto latest main
- Use
git rebase -ito squash messy commits before pushing
Safety Checklist
Before destructive operations (reset --hard, rebase, force push):
- Is this a shared branch? β Don't rewrite history
- Do I have uncommitted changes? β Stash or commit first
- Am I on the right branch? β
git branchto verify - Is remote up to date? β
git fetchfirst
Common Traps
- git user.email wrong β Verify with
git config user.emailbefore important commits - Empty directories β Git doesn't track them, add
.gitkeep - Submodules β Always clone with
--recurse-submodules - Detached HEAD β Use
git switch -to return to previous branch - Push rejected β Usually needs
git pull --rebasefirst - stash pop on conflict β Stash disappears. Use
stash applyinstead - Large files β Use Git LFS for files >50MB, never commit secrets
- Case sensitivity β Mac/Windows ignore case, Linux doesn't β causes CI failures
Recovery Commands
- Undo last commit keeping changes:
git reset --soft HEAD~1 - Discard unstaged changes:
git restore filename - Find lost commits:
git reflog(keeps ~90 days of history) - Recover deleted branch:
git checkout -b branch-name <sha-from-reflog> - Use
git add -pfor partial staging when commit mixes multiple changes
Debugging with Bisect
Find the commit that introduced a bug:
git bisect start
git bisect bad # current commit is broken
git bisect good v1.0.0 # this version worked
# Git checks out middle commit, test it, then:
git bisect good # or git bisect bad
# Repeat until Git finds the culprit
git bisect reset # return to original branch
Quick Summary
git status -sb # short status with branch
git log --oneline -5 # last 5 commits
git shortlog -sn # contributors by commit count
git diff --stat HEAD~5 # changes summary last 5 commits
git branch -vv # branches with tracking info
git stash list # pending stashes
Related Skills
Install with clawhub install <slug> if user confirms:
gitlabβ GitLab CI/CD and merge requestsdockerβ Containerization workflowscodeβ Code quality and best practices
Feedback
- If useful:
clawhub star git - Stay updated:
clawhub sync