| name | git-workflow |
| description | This skill should be used when the user asks to "create git commit", "manage branches", "follow git workflow", "use Conventional Commits", "handle merge conflicts", or asks about git branching strategies, version control best practices, pull request workflows. Provides comprehensive Git workflow guidance for team collaboration. |
| version | 1.2.0 |
Git Workflow Standards
This document defines the project's Git usage standards, including commit message format, branch management strategy, workflows, merge strategies, and more. Following these standards improves collaboration efficiency, enables traceability, supports automation, and reduces conflicts.
Commit Message Standards
The project follows the Conventional Commits specification:
<type>(<scope>): <subject>
<body>
<footer>
Type Reference
| Type | Description | Example |
|---|
feat | New feature | feat(user): add user export functionality |
fix | Bug fix | fix(login): fix captcha not refreshing |
docs | Documentation update | docs(api): update API documentation |
refactor | Refactoring | refactor(utils): refactor utility functions |
perf | Performance improvement | perf(list): optimize list performance |
test | Test related | test(user): add unit tests |
chore | Other changes | chore: update dependency versions |
Subject Rules
- Start with a verb: add, fix, update, remove, optimize
- No more than 50 characters
- No period at the end
For more detailed conventions and examples, see references/commit-conventions.md.
Branch Management Strategy
Branch Types
| Branch Type | Naming Convention | Description | Lifecycle |
|---|
| master | master | Main branch, releasable state | Permanent |
| develop | develop | Development branch, latest integrated code | Permanent |
| feature | feature/feature-name | Feature branch | Delete after completion |
| bugfix | bugfix/issue-description | Bug fix branch | Delete after fix |
| hotfix | hotfix/issue-description | Emergency fix branch | Delete after fix |
| release | release/version-number | Release branch | Delete after release |
Branch Naming Examples
feature/user-management # User management feature
feature/123-add-export # Issue-linked feature
bugfix/login-error # Login error fix
hotfix/security-vulnerability # Security vulnerability fix
release/v1.0.0 # Version release
Branch Protection Rules
master branch:
- No direct pushes allowed
- Must merge via Pull Request
- Must pass CI checks
- Requires at least one Code Review approval
develop branch:
- Direct pushes restricted
- Pull Request merges recommended
- Must pass CI checks
For detailed branch strategies and workflows, see references/branching-strategies.md.
Workflows
Daily Development Workflow
git checkout develop
git pull origin develop
git checkout -b feature/user-management
git add .
git commit -m "feat(user): add user list page"
git push -u origin feature/user-management
git branch -d feature/user-management
git push origin -d feature/user-management
Hotfix Workflow
git checkout master
git pull origin master
git checkout -b hotfix/critical-bug
git add .
git commit -m "fix(auth): fix authentication bypass vulnerability"
git checkout master
git merge --no-ff hotfix/critical-bug
git tag -a v1.0.1 -m "hotfix: fix authentication bypass vulnerability"
git push origin master --tags
git checkout develop
git merge --no-ff hotfix/critical-bug
git push origin develop
Release Workflow
git checkout develop
git checkout -b release/v1.0.0
git add .
git commit -m "chore(release): prepare release v1.0.0"
git checkout master
git merge --no-ff release/v1.0.0
git tag -a v1.0.0 -m "release: v1.0.0 official release"
git push origin master --tags
git checkout develop
git merge --no-ff release/v1.0.0
git push origin develop
Merge Strategy
Merge vs Rebase
| Feature | Merge | Rebase |
|---|
| History | Preserves complete history | Linear history |
| Use case | Public branches | Private branches |
| Recommended for | Merging to main branch | Syncing upstream code |
Recommendations
- Feature branch syncing develop: Use
rebase
- Feature branch merging to develop: Use
merge --no-ff
- develop merging to master: Use
merge --no-ff
git checkout feature/user-management
git rebase develop
git checkout develop
git merge --no-ff feature/user-management
git checkout develop
git rebase feature/xxx
Project convention: Use --no-ff when merging feature branches to preserve branch history.
For detailed merge strategies and techniques, see references/merge-strategies.md.
Conflict Resolution
Identifying Conflicts
<<<<<<< HEAD
// Current branch code
const name = 'Alice'
=======
// Branch being merged
const name = 'Bob'
>>>>>>> feature/user-management
Resolving Conflicts
git status
git add <file>
git commit
git rebase --continue
Conflict Resolution Strategies
git checkout --ours <file>
git checkout --theirs <file>
git merge --abort
git rebase --abort
Preventing Conflicts
- Sync code regularly - Pull latest code before starting work each day
- Small commits - Commit small changes frequently
- Modular features - Implement different features in different files
- Communication - Avoid modifying the same file simultaneously
For detailed conflict handling and advanced techniques, see references/conflict-resolution.md.
.gitignore Standards
Basic Rules
# Ignore all .log files
*.log
# Ignore directories
node_modules/
# Ignore directory at root
/temp/
# Ignore files in all directories
**/.env
# Don't ignore specific files
!.gitkeep
Common .gitignore
node_modules/
dist/
build/
.idea/
.vscode/
.env
.env.local
logs/
*.log
.DS_Store
Thumbs.db
For detailed .gitignore patterns and project-specific configurations, see references/gitignore-guide.md.
Tag Management
Uses Semantic Versioning:
MAJOR.MINOR.PATCH[-PRERELEASE]
Version Change Rules
- MAJOR: Incompatible API changes (v1.0.0 → v2.0.0)
- MINOR: Backward-compatible new features (v1.0.0 → v1.1.0)
- PATCH: Backward-compatible bug fixes (v1.0.0 → v1.0.1)
Tag Operations
git tag -a v1.0.0 -m "release: v1.0.0 official release"
git push origin v1.0.0
git push origin --tags
git tag
git show v1.0.0
git tag -d v1.0.0
git push origin :refs/tags/v1.0.0
Team Collaboration Standards
Pull Request Standards
PRs should include:
## Change Description
<!-- Describe the content and purpose of this change -->
## Change Type
- [ ] New feature (feat)
- [ ] Bug fix (fix)
- [ ] Code refactoring (refactor)
## Testing Method
<!-- Describe how to test -->
## Related Issue
Closes #xxx
## Checklist
- [ ] Code has been self-tested
- [ ] Documentation has been updated
Code Review Standards
Review focus areas:
- Code quality: Clear and readable, proper naming, no duplicate code
- Logic correctness: Business logic correct, edge cases handled
- Security: No security vulnerabilities, sensitive information protected
- Performance: No obvious performance issues, resources properly released
For detailed collaboration standards and best practices, see references/collaboration.md.
Common Issues
Amending the Last Commit
git add forgotten-file.ts
git commit --amend --no-edit
git commit --amend -m "new commit message"
Push Rejected
git pull origin master
git push origin master
git pull --rebase origin master
git push origin master
Rollback to Previous Version
git reset --hard abc123
git revert abc123
Stash Current Work
git stash save "work in progress"
git stash list
git stash pop
View File Modification History
git log -- <file>
git log -p -- <file>
git blame <file>
Best Practices Summary
Commit Standards
✅ Recommended:
- Follow Conventional Commits specification
- Write clear commit messages describing changes
- One commit for one logical change
- Run code checks before committing
❌ Prohibited:
- Vague commit messages
- Multiple unrelated changes in one commit
- Committing sensitive information (passwords, keys)
- Developing directly on main branch
Branch Management
✅ Recommended:
- Use feature branches for development
- Regularly sync main branch code
- Delete branches promptly after feature completion
- Use
--no-ff merge to preserve history
❌ Prohibited:
- Developing directly on main branch
- Long-lived unmerged feature branches
- Non-standard branch naming
- Rebasing on public branches
Code Review
✅ Recommended:
- All code goes through Pull Requests
- At least one reviewer approval before merging
- Provide constructive feedback
❌ Prohibited:
- Merging without review
- Reviewing your own code
Additional Resources
Reference Files
For detailed guidance on specific topics:
references/commit-conventions.md - Commit message detailed conventions and examples
references/branching-strategies.md - Comprehensive branch management strategies
references/merge-strategies.md - Merge, rebase, and conflict resolution strategies
references/conflict-resolution.md - Detailed conflict handling and prevention
references/advanced-usage.md - Git performance optimization, security, submodules, and advanced techniques
references/collaboration.md - Pull request and code review guidelines
references/gitignore-guide.md - .gitignore patterns and project-specific configurations
Example Files
Working examples in examples/:
examples/commit-messages.txt - Good commit message examples
examples/workflow-commands.sh - Common workflow command snippets
Summary
This document defines the project's Git standards:
- Commit Messages - Follow Conventional Commits specification
- Branch Management - master/develop/feature/bugfix/hotfix/release branch strategy
- Workflows - Standard processes for daily development, hotfixes, and releases
- Merge Strategy - Use rebase to sync feature branches, merge --no-ff to merge
- Tag Management - Semantic versioning, annotated tags
- Conflict Resolution - Regular syncing, small commits, team communication
Following these standards improves collaboration efficiency, ensures code quality, and simplifies version management.