Summary
TL;DR: Git commits, branches, rebases, merges, conflict resolution, history recovery, team workflows, and the commands needed for safe day-to-day version control. U...
Git covers the full range of day-to-day version control tasks. Commits, branches, rebases, merges, conflict resolution, history recovery, and team collaboration workflows.
Your agent learns safe practices for each operation. It knows when to rebase vs merge, how to write good commit messages, and how to recover from mistakes without losing work.
This is a well-rounded Git knowledge skill. Whether you are working solo or on a team, your agent has the Git expertise to keep your workflow smooth and your history clean.
Use cases
- Getting guidance on rebase vs merge for your specific branch situation
- Writing clear, conventional commit messages that follow best practices
- Resolving merge conflicts step by step with your agent's help
- Recovering from Git mistakes like accidental force pushes or bad rebases
Installation
Run this command to install the skill on your OpenClaw agent:
npx clawhub@latest install gitSecurity scan
The skill is an instruction-only Git helper that only requires the git binary and its instructions align with its stated purpose.
SKILL.md
---
name: Git
slug: git
version: 1.0.8
description: "Git commits, branches, rebases, merges, conflict resolution, history recovery, team workflows, and the commands needed for safe day-to-day version control. Use when (1) the task touches Git, a repository, commits, branches, merges, rebases, or pull requests; (2) history safety, collaboration, or recovery matter; (3) the agent should automatically apply Git discipline instead of improvising."
homepage: https://clawic.com/skills/git
changelog: Simplified the skill name and kept the stateless activation guidance
metadata: {"clawdbot":{"emoji":"๐","requires":{"bins":["git"]},"os":["linux","darwin","win32"]}}
---
## When to Use
Use when the task involves Git repositories, branches, commits, merges, rebases, pull requests, conflict resolution, history inspection, or recovery. This skill is stateless and should be applied by default whenever Git work is part of the job.
## 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` |
## Core Rules
1. **Never force push to shared branches** โ Use `--force-with-lease` on feature branches only
2. **Commit early, commit often** โ Small commits are easier to review, revert, and bisect
3. **Write meaningful commit messages** โ First line under 72 chars, imperative mood
4. **Pull before push** โ Always `git pull --rebase` before pushing to avoid merge commits
5. **Clean up before merging** โ Use `git rebase -i` to squash fixup commits
## Team Workflows
**Feature Branch Flow:**
1. `git checkout -b feature/name` from main
2. Make commits, push regularly
3. Open PR, get review
4. Squash and merge to main
5. Delete feature branch
**Hotfix Flow:**
1. `git checkout -b hotfix/issue` from main
2. Fix, test, commit
3. Merge to main AND develop (if exists)
4. Tag the release
**Daily Sync:**
```bash
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-lease` instead of `--force` โ prevents overwriting others' work
- If push rejected, run `git pull --rebase` before 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 --abort` and try `git rebase` instead
## 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 -i` to 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 branch` to verify
- [ ] Is remote up to date? โ `git fetch` first
## Common Traps
- **git user.email wrong** โ Verify with `git config user.email` before 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 --rebase` first
- **stash pop on conflict** โ Stash disappears. Use `stash apply` instead
- **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 -p` for partial staging when commit mixes multiple changes
## Debugging with Bisect
Find the commit that introduced a bug:
```bash
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
```bash
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 requests
- `docker` โ Containerization workflows
- `code` โ Code quality and best practices
## Feedback
- If useful: `clawhub star git`
- Stay updated: `clawhub sync`
Version history
Simplified the skill name and kept the stateless activation guidance
Translated all auxiliary files to English
Added architecture section, improved traps coverage, and debugging with bisect
Added team workflows, summary commands, and setup system
Added essential commands reference and advanced operations guide. Now covers stash, tags, cherry-pick, bisect, worktree, reflog, and sparse checkout.
Added Core Rules with essential Git best practices. Improved structure and guidance.
Auxiliares rehecho con 100% trampas
Upgrade: nueva estructura con archivos auxiliares
Initial release
Frequently asked questions
Both cover Git fundamentals. This skill by ivangdavila includes a broader set of scenarios including team workflows and recovery techniques. Try both and keep the one that fits your style. See all [Git & DevOps skills](/skills/git-devops) to compare.
Installation method
Send this prompt to your agent to install the skill
npx clawhub@latest install gitSkill info
Files
Skill data sourced from ClawHub