
git-workflows
Git version control, branching strategies, and collaboration patterns
- Installs
- 114
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/miles990/claude-software-skills --skill git-workflows- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads git-workflows automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Git Workflows
Overview
Git version control patterns, branching strategies, and team collaboration best practices.
Branching Strategies
Git Flow
main ─────●────────────●─────────────●───────────
\ / \
\ release/1.0 release/1.1
\ / \ /
develop ──────●───●──────●────●──────●────────────
\ / \ /
feature/ feature/ feature/
login payment search
# Initialize git flow
git flow init
# Start a new feature
git flow feature start user-authentication
# Work on feature...
git flow feature finish user-authentication
# Start a release
git flow release start 1.0.0
# Bug fixes only...
git flow release finish 1.0.0
# Hotfix for production
git flow hotfix start critical-bug
git flow hotfix finish critical-bug
GitHub Flow (Simplified)
main ─────●──────●──────●──────●──────●───────
\ / \ / \
feature/ feature/ feature/
add-auth fix-bug new-ui
# 1. Create branch from main
git checkout main
git pull origin main
git checkout -b feature/add-authentication
# 2. Make changes and commit
git add .
git commit -m "feat: add user authentication"
# 3. Push and create PR
git push -u origin feature/add-authentication
gh pr create --title "Add user authentication" --body "..."
# 4. After review, merge via GitHub
gh pr merge --squash
# 5. Delete branch
git checkout main
git pull origin main
git branch -d feature/add-authentication
Trunk-Based Development
main ────●──●──●──●──●──●──●──●──●────
│ │ │
└─────┴────────┴─── short-lived branches (< 1 day)
# Small, frequent commits directly to main or via short-lived branches
git checkout main
git pull
git checkout -b fix/typo-in-readme
# Make small change...
git commit -m "fix: typo in README"
git push -u origin fix/typo-in-readme
# PR, review, merge same day
Common Operations
Commits
# Stage specific changes
git add -p # Interactive staging
# Commit with message
git commit -m "feat(auth): add JWT token validation"
# Amend last commit (not pushed)
git commit --amend -m "feat(auth): add JWT token validation and refresh"
# Commit with co-author
git commit -m "feat: implement feature
Co-authored-by: Name <email@example.com>"
# Empty commit (trigger CI)
git commit --allow-empty -m "chore: trigger CI build"
Conventional Commits
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
| Type | Description |
|---|---|
| feat | New feature |
| fix | Bug fix |
| docs | Documentation only |
| style | Formatting, no code change |
| refactor | Code change, no new feature or fix |
| perf | Performance improvement |
| test | Adding tests |
| chore | Build, CI, tooling |
# Examples
git commit -m "feat(api): add user registration endpoint"
git commit -m "fix(auth): handle expired token refresh"
git commit -m "docs: update API documentation"
git commit -m "refactor(db): extract connection pool logic"
git commit -m "test(user): add unit tests for validation"
Branching
# Create and switch to branch
git checkout -b feature/new-feature
# or
git switch -c feature/new-feature
# List branches
git branch -a # All branches
git branch -vv # With tracking info
# Delete branch
git branch -d feature/merged-branch # Safe delete
git branch -D feature/unmerged-branch # Force delete
# Rename branch
git branch -m old-name new-name
# Set upstream
git branch --set-upstream-to=origin/main main
Merging
# Merge branch into current
git merge feature/branch
# Merge with no fast-forward (always create merge commit)
git merge --no-ff feature/branch
# Squash merge (combine all commits)
git merge --squash feature/branch
git commit -m "feat: add feature (squashed)"
# Abort merge
git merge --abort
Rebasing
# Rebase current branch onto main
git fetch origin
git rebase origin/main
# Interactive rebase (last 3 commits)
git rebase -i HEAD~3
# In editor, change 'pick' to:
# - squash (s): combine with previous
# - fixup (f): combine, discard message
# - reword (r): change commit message
# - edit (e): stop for amending
# - drop (d): remove commit
# Continue rebase after resolving conflicts
git add .
git rebase --continue
# Abort rebase
git rebase --abort
Stashing
# Stash changes
git stash
git stash push -m "work in progress"
# Stash including untracked files
git stash -u
# List stashes
git stash list
# Apply stash
git stash pop # Apply and remove
git stash apply # Apply and keep
git stash apply stash@{2} # Apply specific
# Show stash contents
git stash show -p stash@{0}
# Drop stash
git stash drop stash@{0}
git stash clear # Drop all
Undoing Changes
# Discard changes in working directory
git checkout -- file.txt
git restore file.txt # Git 2.23+
# Unstage file
git reset HEAD file.txt
git restore --staged file.txt # Git 2.23+
# Reset to previous commit (keep changes staged)
git reset --soft HEAD~1
# Reset to previous commit (keep changes unstaged)
git reset HEAD~1
git reset --mixed HEAD~1
# Reset to previous commit (discard changes)
git reset --hard HEAD~1
# Revert a commit (create new commit that undoes)
git revert <commit-hash>
# Revert merge commit
git revert -m 1 <merge-commit-hash>
Git Hooks
Pre-commit Hook
#!/bin/sh
# .git/hooks/pre-commit
# Run linting
npm run lint
if [ $? -ne 0 ]; then
echo "Linting failed. Please fix errors before committing."
exit 1
fi
# Run type checking
npm run type-check
if [ $? -ne 0 ]; then
echo "Type checking failed. Please fix errors before committing."
exit 1
fi
# Check for console.log
if git diff --cached | grep -E '^\+.*console\.(log|debug|info)' > /dev/null; then
echo "Warning: Found console.log statements. Remove before committing."
exit 1
fi
Husky + lint-staged
// package.json
{
"scripts": {
"prepare": "husky install"
},
"lint-staged": {
"*.{js,ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md,yml}": [
"prettier --write"
]
}
}
# .husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged
# .husky/commit-msg
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no -- commitlint --edit "$1"
Advanced Operations
Cherry-pick
# Apply specific commit to current branch
git cherry-pick <commit-hash>
# Cherry-pick multiple commits
git cherry-pick <commit1> <commit2> <commit3>
# Cherry-pick without committing
git cherry-pick -n <commit-hash>
# Cherry-pick merge commit
git cherry-pick -m 1 <merge-commit-hash>
Bisect (Find Bug Introduction)
# Start bisect
git bisect start
# Mark current as bad
git bisect bad
# Mark known good commit
git bisect good v1.0.0
# Git checks out middle commit, test and mark
git bisect good # or
git bisect bad
# Repeat until found
# Git reports the first bad commit
# End bisect
git bisect reset
# Automated bisect
git bisect start HEAD v1.0.0
git bisect run npm test
Worktrees
# Create worktree for parallel work
git worktree add ../project-hotfix hotfix/urgent-fix
git worktree add ../project-feature feature/new-feature
# List worktrees
git worktree list
# Remove worktree
git worktree remove ../project-hotfix
Submodules
# Add submodule
git submodule add https://github.com/org/repo.git libs/repo
# Clone with submodules
git clone --recurse-submodules https://github.com/org/project.git
# Update submodules
git submodule update --init --recursive
# Pull submodule updates
git submodule update --remote
Git Configuration
# User config
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
# Default branch
git config --global init.defaultBranch main
# Editor
git config --global core.editor "code --wait"
# Aliases
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
git config --global alias.unstage "reset HEAD --"
git config --global alias.last "log -1 HEAD"
# Pull behavior
git config --global pull.rebase true
# Auto-setup remote tracking
git config --global push.autoSetupRemote true
# Credential caching
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
Related Skills
- [[devops-cicd]] - CI/CD with Git
- [[code-quality]] - Code review practices
- [[project-management]] - Agile workflows
FAQ
What does the git-workflows skill do?
Git version control, branching strategies, and collaboration patterns
How do I install git-workflows?
Run npx skills add https://github.com/miles990/claude-software-skills --skill git-workflows in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/git-workflows/ (personal) or .claude/skills/git-workflows/ (project).
Which AI agents can use git-workflows?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is git-workflows safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains git-workflows?
It is published by miles990 in miles990/claude-software-skills. It has 114 recorded installs.
More from miles990/claude-software-skills
code-quality
miles990/claude-software-skills
Clean code principles, SOLID, and code review practices
devops-cicd
miles990/claude-software-skills
CI/CD pipelines, infrastructure as code, and deployment strategies
game-development
miles990/claude-software-skills
Game development patterns, architectures, and best practices
project-management
miles990/claude-software-skills
Open the skill to read its SKILL.md instructions.
e-commerce
miles990/claude-software-skills
E-commerce platforms, payment processing, and shopping cart patterns
saas-platforms
miles990/claude-software-skills
Open the skill to read its SKILL.md instructions.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.