Awesome-claude-skills git-workflow
Git workflows, conventional commits, branching strategies, and PR management. Use for commits, branches, merges, rebases, and PR workflows.
install
source · Clone the upstream repo
git clone https://github.com/itsnex1s/awesome-claude-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/itsnex1s/awesome-claude-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/git-workflow" ~/.claude/skills/itsnex1s-awesome-claude-skills-git-workflow && rm -rf "$T"
manifest:
skills/git-workflow/SKILL.mdsource content
git-workflow
Git workflows, conventional commits, branching strategies, and pull request management.
Conventional Commits
Format:
<type>(<scope>): <description>
Types
feat: New feature fix: Bug fix docs: Documentation only style: Formatting, no code change refactor: Code change, no feature/fix perf: Performance improvement test: Adding tests chore: Build, config, dependencies ci: CI/CD changes revert: Revert previous commit
Examples
git commit -m "feat(auth): add OAuth2 login" git commit -m "fix(api): handle null response" git commit -m "docs: update README installation" git commit -m "chore(deps): upgrade React to 19" git commit -m "refactor(utils): simplify date formatting"
Breaking Changes
git commit -m "feat(api)!: change response format" # or git commit -m "feat(api): change response format BREAKING CHANGE: Response now returns array instead of object"
Branch Naming
Format
<type>/<ticket>-<description>
Examples
git checkout -b feat/AUTH-123-oauth-login git checkout -b fix/BUG-456-null-pointer git checkout -b chore/upgrade-dependencies git checkout -b hotfix/security-patch
Types
feat/ Feature branch fix/ Bug fix branch hotfix/ Urgent production fix chore/ Maintenance docs/ Documentation refactor/ Code refactoring test/ Test additions
Common Workflows
Start New Feature
git checkout main git pull origin main git checkout -b feat/TICKET-123-feature-name
Commit Changes
git add -A git commit -m "feat(scope): description"
Push and Create PR
git push -u origin HEAD gh pr create --title "feat(scope): description" --body "## Summary\n- Change 1\n- Change 2"
Update Branch with Main
# Rebase (clean history) git fetch origin git rebase origin/main # Or merge (preserves history) git merge origin/main
Interactive Rebase (squash commits)
git rebase -i HEAD~3 # Last 3 commits # Change 'pick' to 'squash' or 's' for commits to combine
Amend Last Commit
git add . git commit --amend --no-edit # Keep same message git commit --amend -m "new message" # Change message
Undo Commits
git reset --soft HEAD~1 # Undo commit, keep changes staged git reset --mixed HEAD~1 # Undo commit, keep changes unstaged git reset --hard HEAD~1 # Undo commit, discard changes
Cherry Pick
git cherry-pick <commit-hash> git cherry-pick <hash1> <hash2> # Multiple commits
Stash Changes
git stash # Stash changes git stash -m "description" # With message git stash list # List stashes git stash pop # Apply and remove git stash apply # Apply and keep git stash drop # Remove stash
Git Log
git log --oneline -10 # Last 10 commits, compact git log --oneline --graph --all # Visual branch graph git log --since="1 week ago" # Last week git log --author="name" # By author git log --grep="fix" # Search message git log -p # Show diffs git log --stat # Show file changes
Git Diff
git diff # Unstaged changes git diff --staged # Staged changes git diff HEAD~3 # Last 3 commits git diff main..feature # Between branches git diff --name-only # Only file names
Tags
git tag v1.0.0 # Lightweight tag git tag -a v1.0.0 -m "Release 1.0.0" # Annotated tag git push origin v1.0.0 # Push tag git push origin --tags # Push all tags git tag -d v1.0.0 # Delete local tag git push origin :refs/tags/v1.0.0 # Delete remote tag
Clean Up
git branch -d feature-branch # Delete merged branch git branch -D feature-branch # Force delete branch git remote prune origin # Clean stale remote refs git gc # Garbage collect
Aliases (add to ~/.gitconfig)
[alias] co = checkout br = branch ci = commit st = status lg = log --oneline --graph --all last = log -1 HEAD unstage = reset HEAD -- amend = commit --amend --no-edit
PR Best Practices
- Small PRs: Keep changes focused, < 400 lines
- Clear title: Use conventional commit format
- Description: Explain what and why
- Tests: Include relevant tests
- Self-review: Review your own diff first
- Screenshots: For UI changes
Merge Strategies
# Merge commit (preserves history) git merge feature-branch # Squash merge (single commit) git merge --squash feature-branch git commit -m "feat: feature description" # Rebase merge (linear history) git rebase main git checkout main git merge feature-branch --ff-only
Troubleshooting
Undo pushed commit
git revert <commit-hash> git push
Fix detached HEAD
git checkout main # Or save changes: git checkout -b new-branch
Recover deleted branch
git reflog # Find commit hash git checkout -b recovered-branch <hash>
Resolve merge conflicts
git status # See conflicted files # Edit files, resolve conflicts git add <resolved-files> git commit # Complete merge