Git Branch Skill
This skill guides the creation of Git branches with project-specific naming conventions.
When to Use
Use this skill when:
- You have made changes to the codebase and need to create a new branch for those changes.
- You want to ensure that the branch name follows the project's naming conventions.
Instructions
Step 1: Check staged changes
Use the following command to view staged changes:
git diff --staged
Important If there are staged changes, proceed to the next step.
If there are no staged changes, check unstaged changes with:
git diff --name-only
Step 2: Determine branch type and description
The format for branch names is:
<type>-<description>
- If there are only staged changes, base the branch name on the staged changes.
- If there are only unstaged changes, base the branch name on the unstaged changes.
- If there are both staged and unstaged changes, base the branch name on the staged changes.
type is determined based on the patterns of the changed files:
feat-: New features or changes to existing featuresfix-: Bug fixesrefactor-: Refactoring (changes that do not add features or fix bugs)test-: Adding or modifying tests (e.g., changes to*.spec.*or*.spec.*.snapfiles)docs-: Documentation-only changes (e.g., changes to*.mdfiles)ci-: CI-related changes (e.g., changes to files in.github/workflows/*or.github/actions/*)chore-: Other changes (e.g., changes to*.json, configuration files like*.config.js,.gitignore, etc.)revert-: Reverting previous commitsbuild-: Changes related to the build system or external dependenciesperf-: Performance improvements
description should concisely describe the changes made, using hyphens to separate words.
Step 3: Create the branch
Use git switch -c to create and switch to the new branch.
Example:
git switch -c feat-user-authentication
[!NOTE]
When the name of the branch already exists, append a unique suffix to the branch name to avoid conflicts. For example, if
feat-user-authenticationalready exists, createfeat-user-authentication-1,feat-user-authentication-2, etc.