Git mastery. Clean history. Atomic commits. Professional version control.
View on GitHubskills/v-git/SKILL.md
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/kks0488/vibe-claude/blob/main/skills/v-git/SKILL.md -a claude-code --skill v-gitInstallation paths:
.claude/skills/v-git/# V-Git Your git history tells a story. Make it a good one. ## Core Philosophy Every commit should be a complete, atomic thought. The history should read like a well-organized book—not a stream of consciousness. ## The Commit Commandments ### 1. Atomic Commits One logical change per commit: ``` BAD: "Fix bug and add feature and update docs" GOOD: Commit 1: "Fix null check in auth handler" Commit 2: "Add password reset flow" Commit 3: "Document password reset API" ``` ### 2. Mandatory Splitting | Files Changed | Minimum Commits | |---------------|-----------------| | 3-5 files | 2+ commits | | 6-10 files | 3+ commits | | 11+ files | 5+ commits | **ONE COMMIT FOR MANY FILES = AUTOMATIC FAILURE** ### 3. Style Detection Before first commit, analyze existing style: ```bash git log -20 --oneline ``` Match the pattern: - Language (Korean/English) - Format (Conventional/Plain) - Length (Short/Detailed) - Capitalization ## Splitting Logic | Signal | Action | |--------|--------| | Different directories | SPLIT | | Different concerns (UI/logic/config) | SPLIT | | Independent changes | SPLIT | | New file + modifications | SPLIT | | Test + implementation | SPLIT | ## Commit Message Template ``` <type>: <what changed> <why it changed - 1-2 sentences if needed> ``` Types: feat, fix, refactor, docs, test, chore, style ## Advanced Operations ### Find When Bug Started ```bash git bisect start git bisect bad HEAD git bisect good v1.0.0 # Git finds the breaking commit ``` ### Find Who Changed Line ```bash git blame -L 50,60 file.ts ``` ### Find When Code Added ```bash git log -S "functionName" --oneline ``` ### Interactive Rebase (local only) ```bash git rebase -i HEAD~5 # squash, reorder, edit commits ``` ## Safety Rules - **NEVER** `git push --force` to main/master - **ALWAYS** `--force-with-lease` instead of `--force` - **NEVER** rebase published branches - **ALWAYS** stash before risky operations - **NEVER** commit secrets, even "temporarily" ## Phase Int