git-flow-branch-creator

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Instructions

说明

xml
<instructions>
	<title>Git Flow Branch Creator</title>
	<description>This prompt analyzes your current git changes using git status and git diff (or git diff --cached), then intelligently determines the appropriate branch type according to the Git Flow branching model and creates a semantic branch name.</description>
	<note>
		Just run this prompt and Copilot will analyze your changes and create the appropriate Git Flow branch for you.
	</note>
</instructions>
xml
<instructions>
	<title>Git Flow分支创建工具</title>
	<description>该提示词会利用git status和git diff(或git diff --cached)分析你当前的git变更,然后根据Git Flow分支模型智能判断合适的分支类型,并生成语义化的分支名称。</description>
	<note>
		只需运行该提示词,Copilot就会分析你的变更并为你创建合适的Git Flow分支。
	</note>
</instructions>

Workflow

工作流程

Follow these steps:
  1. Run
    git status
    to review the current repository state and changed files.
  2. Run
    git diff
    (for unstaged changes) or
    git diff --cached
    (for staged changes) to analyze the nature of changes.
  3. Analyze the changes using the Git Flow Branch Analysis Framework below.
  4. Determine the appropriate branch type based on the analysis.
  5. Generate a semantic branch name following Git Flow conventions.
  6. Create the branch and switch to it automatically.
  7. Provide a summary of the analysis and next steps.
请遵循以下步骤:
  1. 运行
    git status
    查看当前仓库状态和已修改文件。
  2. 运行
    git diff
    (针对未暂存变更)或
    git diff --cached
    (针对已暂存变更)分析变更的性质。
  3. 使用下方的Git Flow分支分析框架分析变更。
  4. 根据分析结果确定合适的分支类型。
  5. 遵循Git Flow约定生成语义化的分支名称。
  6. 自动创建分支并切换到该分支。
  7. 提供分析总结和后续步骤建议。

Git Flow Branch Analysis Framework

Git Flow分支分析框架

xml
<analysis-framework>
	<branch-types>
		<feature>
			<purpose>New features, enhancements, non-critical improvements</purpose>
			<branch-from>develop</branch-from>
			<merge-to>develop</merge-to>
			<naming>feature/descriptive-name or feature/ticket-number-description</naming>
			<indicators>
				<indicator>New functionality being added</indicator>
				<indicator>UI/UX improvements</indicator>
				<indicator>New API endpoints or methods</indicator>
				<indicator>Database schema additions (non-breaking)</indicator>
				<indicator>New configuration options</indicator>
				<indicator>Performance improvements (non-critical)</indicator>
			</indicators>
		</feature>

		<release>
			<purpose>Release preparation, version bumps, final testing</purpose>
			<branch-from>develop</branch-from>
			<merge-to>develop AND master</merge-to>
			<naming>release-X.Y.Z</naming>
			<indicators>
				<indicator>Version number changes</indicator>
				<indicator>Build configuration updates</indicator>
				<indicator>Documentation finalization</indicator>
				<indicator>Minor bug fixes before release</indicator>
				<indicator>Release notes updates</indicator>
				<indicator>Dependency version locks</indicator>
			</indicators>
		</release>

		<hotfix>
			<purpose>Critical production bug fixes requiring immediate deployment</purpose>
			<branch-from>master</branch-from>
			<merge-to>develop AND master</merge-to>
			<naming>hotfix-X.Y.Z or hotfix/critical-issue-description</naming>
			<indicators>
				<indicator>Security vulnerability fixes</indicator>
				<indicator>Critical production bugs</indicator>
				<indicator>Data corruption fixes</indicator>
				<indicator>Service outage resolution</indicator>
				<indicator>Emergency configuration changes</indicator>
			</indicators>
		</hotfix>
	</branch-types>
</analysis-framework>
xml
<analysis-framework>
	<branch-types>
		<feature>
			<purpose>新功能、功能增强、非关键性改进</purpose>
			<branch-from>develop</branch-from>
			<merge-to>develop</merge-to>
			<naming>feature/描述性名称 或 feature/工单编号-描述</naming>
			<indicators>
				<indicator>新增功能</indicator>
				<indicator>UI/UX改进</indicator>
				<indicator>新增API端点或方法</indicator>
				<indicator>数据库架构新增(非破坏性)</indicator>
				<indicator>新增配置选项</indicator>
				<indicator>性能优化(非关键性)</indicator>
			</indicators>
		</feature>

		<release>
			<purpose>发布准备、版本升级、最终测试</purpose>
			<branch-from>develop</branch-from>
			<merge-to>develop 以及 master</merge-to>
			<naming>release-X.Y.Z</naming>
			<indicators>
				<indicator>版本号变更</indicator>
				<indicator>构建配置更新</indicator>
				<indicator>文档终稿</indicator>
				<indicator>发布前的小bug修复</indicator>
				<indicator>发布说明更新</indicator>
				<indicator>依赖版本锁定</indicator>
			</indicators>
		</release>

		<hotfix>
			<purpose>需要立即部署的生产环境关键bug修复</purpose>
			<branch-from>master</branch-from>
			<merge-to>develop 以及 master</merge-to>
			<naming>hotfix-X.Y.Z 或 hotfix/关键问题描述</naming>
			<indicators>
				<indicator>安全漏洞修复</indicator>
				<indicator>生产环境关键bug</indicator>
				<indicator>数据损坏修复</indicator>
				<indicator>服务中断解决</indicator>
				<indicator>紧急配置变更</indicator>
			</indicators>
		</hotfix>
	</branch-types>
</analysis-framework>

Branch Naming Conventions

分支命名规范

xml
<naming-conventions>
	<feature-branches>
		<format>feature/[ticket-number-]descriptive-name</format>
		<examples>
			<example>feature/user-authentication</example>
			<example>feature/PROJ-123-shopping-cart</example>
			<example>feature/api-rate-limiting</example>
			<example>feature/dashboard-redesign</example>
		</examples>
	</feature-branches>

	<release-branches>
		<format>release-X.Y.Z</format>
		<examples>
			<example>release-1.2.0</example>
			<example>release-2.1.0</example>
			<example>release-1.0.0</example>
		</examples>
	</release-branches>

	<hotfix-branches>
		<format>hotfix-X.Y.Z OR hotfix/critical-description</format>
		<examples>
			<example>hotfix-1.2.1</example>
			<example>hotfix/security-patch</example>
			<example>hotfix/payment-gateway-fix</example>
			<example>hotfix-2.1.1</example>
		</examples>
	</hotfix-branches>
</naming-conventions>
xml
<naming-conventions>
	<feature-branches>
		<format>feature/[工单编号-]描述性名称</format>
		<examples>
			<example>feature/user-authentication</example>
			<example>feature/PROJ-123-shopping-cart</example>
			<example>feature/api-rate-limiting</example>
			<example>feature/dashboard-redesign</example>
		</examples>
	</feature-branches>

	<release-branches>
		<format>release-X.Y.Z</format>
		<examples>
			<example>release-1.2.0</example>
			<example>release-2.1.0</example>
			<example>release-1.0.0</example>
		</examples>
	</release-branches>

	<hotfix-branches>
		<format>hotfix-X.Y.Z 或 hotfix/关键问题描述</format>
		<examples>
			<example>hotfix-1.2.1</example>
			<example>hotfix/security-patch</example>
			<example>hotfix/payment-gateway-fix</example>
			<example>hotfix-2.1.1</example>
		</examples>
	</hotfix-branches>
</naming-conventions>

Analysis Process

分析流程

xml
<analysis-process>
	<step-1>
		<title>Change Nature Analysis</title>
		<description>Examine the types of files modified and the nature of changes</description>
		<criteria>
			<files-modified>Look at file extensions, directory structure, and purpose</files-modified>
			<change-scope>Determine if changes are additive, corrective, or preparatory</change-scope>
			<urgency-level>Assess if changes address critical issues or are developmental</urgency-level>
		</criteria>
	</step-1>

	<step-2>
		<title>Git Flow Classification</title>
		<description>Map the changes to appropriate Git Flow branch type</description>
		<decision-tree>
			<question>Are these critical fixes for production issues?</question>
			<if-yes>Consider hotfix branch</if-yes>
			<if-no>
				<question>Are these release preparation changes (version bumps, final tweaks)?</question>
				<if-yes>Consider release branch</if-yes>
				<if-no>Default to feature branch</if-no>
			</if-no>
		</decision-tree>
	</step-2>

	<step-3>
		<title>Branch Name Generation</title>
		<description>Create semantic, descriptive branch name</description>
		<guidelines>
			<use-kebab-case>Use lowercase with hyphens</use-kebab-case>
			<be-descriptive>Name should clearly indicate the purpose</be-descriptive>
			<include-context>Add ticket numbers or project context when available</include-context>
			<keep-concise>Avoid overly long names</keep-concise>
		</guidelines>
	</step-3>
</analysis-process>
xml
<analysis-process>
	<step-1>
		<title>变更性质分析</title>
		<description>检查被修改文件的类型和变更性质</description>
		<criteria>
			<files-modified>查看文件扩展名、目录结构和用途</files-modified>
			<change-scope>确定变更是新增、修正还是准备性的</change-scope>
			<urgency-level>评估变更是解决关键问题还是开发性的</urgency-level>
		</criteria>
	</step-1>

	<step-2>
		<title>Git Flow分类</title>
		<description>将变更映射到合适的Git Flow分支类型</description>
		<decision-tree>
			<question>这些是针对生产环境问题的关键修复吗?</question>
			<if-yes>考虑使用hotfix分支</if-yes>
			<if-no>
				<question>这些是发布准备相关的变更(版本升级、最终调整)吗?</question>
				<if-yes>考虑使用release分支</if-yes>
				<if-no>默认使用feature分支</if-no>
			</if-no>
		</decision-tree>
	</step-2>

	<step-3>
		<title>分支名称生成</title>
		<description>创建语义化、描述性的分支名称</description>
		<guidelines>
			<use-kebab-case>使用小写字母加连字符的格式</use-kebab-case>
			<be-descriptive>名称应清晰表明用途</be-descriptive>
			<include-context>如有可用信息,添加工单编号或项目上下文</include-context>
			<keep-concise>避免过长的名称</keep-concise>
		</guidelines>
	</step-3>
</analysis-process>

Edge Cases and Validation

边缘情况与验证

xml
<edge-cases>
	<mixed-changes>
		<scenario>Changes include both features and bug fixes</scenario>
		<resolution>Prioritize the most significant change type or suggest splitting into multiple branches</resolution>
	</mixed-changes>

	<no-changes>
		<scenario>No changes detected in git status/diff</scenario>
		<resolution>Inform user and suggest checking git status or making changes first</resolution>
	</no-changes>

	<existing-branch>
		<scenario>Already on a feature/hotfix/release branch</scenario>
		<resolution>Analyze if new branch is needed or if current branch is appropriate</resolution>
	</existing-branch>

	<conflicting-names>
		<scenario>Suggested branch name already exists</scenario>
		<resolution>Append incremental suffix or suggest alternative name</resolution>
	</conflicting-names>
</edge-cases>
xml
<edge-cases>
	<mixed-changes>
		<scenario>变更同时包含功能新增和bug修复</scenario>
		<resolution>优先处理最主要的变更类型,或建议拆分为多个分支</resolution>
	</mixed-changes>

	<no-changes>
		<scenario>git status/diff未检测到任何变更</scenario>
		<resolution>告知用户,并建议先检查git状态或进行变更</resolution>
	</no-changes>

	<existing-branch>
		<scenario>当前已处于feature/hotfix/release分支</scenario>
		<resolution>分析是否需要创建新分支,或当前分支是否合适</resolution>
	</existing-branch>

	<conflicting-names>
		<scenario>建议的分支名称已存在</scenario>
		<resolution>添加增量后缀,或建议替代名称</resolution>
	</conflicting-names>
</edge-cases>

Examples

示例

xml
<examples>
	<example-1>
		<scenario>Added new user registration API endpoint</scenario>
		<analysis>New functionality, additive changes, not critical</analysis>
		<branch-type>feature</branch-type>
		<branch-name>feature/user-registration-api</branch-name>
		<command>git checkout -b feature/user-registration-api develop</command>
	</example-1>

	<example-2>
		<scenario>Fixed critical security vulnerability in authentication</scenario>
		<analysis>Security fix, critical for production, immediate deployment needed</analysis>
		<branch-type>hotfix</branch-type>
		<branch-name>hotfix/auth-security-patch</branch-name>
		<command>git checkout -b hotfix/auth-security-patch master</command>
	</example-2>

	<example-3>
		<scenario>Updated version to 2.1.0 and finalized release notes</scenario>
		<analysis>Release preparation, version bump, documentation</analysis>
		<branch-type>release</branch-type>
		<branch-name>release-2.1.0</branch-name>
		<command>git checkout -b release-2.1.0 develop</command>
	</example-3>

	<example-4>
		<scenario>Improved database query performance and updated caching</scenario>
		<analysis>Performance improvement, non-critical enhancement</analysis>
		<branch-type>feature</branch-type>
		<branch-name>feature/database-performance-optimization</branch-name>
		<command>git checkout -b feature/database-performance-optimization develop</command>
	</example-4>
</examples>
xml
<examples>
	<example-1>
		<scenario>新增用户注册API端点</scenario>
		<analysis>新增功能,增量变更,非关键性</analysis>
		<branch-type>feature</branch-type>
		<branch-name>feature/user-registration-api</branch-name>
		<command>git checkout -b feature/user-registration-api develop</command>
	</example-1>

	<example-2>
		<scenario>修复认证模块中的关键安全漏洞</scenario>
		<analysis>安全修复,对生产环境至关重要,需要立即部署</analysis>
		<branch-type>hotfix</branch-type>
		<branch-name>hotfix/auth-security-patch</branch-name>
		<command>git checkout -b hotfix/auth-security-patch master</command>
	</example-2>

	<example-3>
		<scenario>将版本更新至2.1.0并完成发布说明终稿</scenario>
		<analysis>发布准备,版本升级,文档更新</analysis>
		<branch-type>release</branch-type>
		<branch-name>release-2.1.0</branch-name>
		<command>git checkout -b release-2.1.0 develop</command>
	</example-3>

	<example-4>
		<scenario>优化数据库查询性能并更新缓存机制</scenario>
		<analysis>性能优化,非关键性增强</analysis>
		<branch-type>feature</branch-type>
		<branch-name>feature/database-performance-optimization</branch-name>
		<command>git checkout -b feature/database-performance-optimization develop</command>
	</example-4>
</examples>

Validation Checklist

验证检查清单

xml
<validation>
	<pre-analysis>
		<check>Repository is in a clean state (no uncommitted changes that would conflict)</check>
		<check>Current branch is appropriate starting point (develop for features/releases, master for hotfixes)</check>
		<check>Remote repository is up to date</check>
	</pre-analysis>

	<analysis-quality>
		<check>Change analysis covers all modified files</check>
		<check>Branch type selection follows Git Flow principles</check>
		<check>Branch name is semantic and follows conventions</check>
		<check>Edge cases are considered and handled</check>
	</analysis-quality>

	<execution-safety>
		<check>Target branch (develop/master) exists and is accessible</check>
		<check>Proposed branch name doesn't conflict with existing branches</check>
		<check>User has appropriate permissions to create branches</check>
	</execution-safety>
</validation>
xml
<validation>
	<pre-analysis>
		<check>仓库处于干净状态(无会导致冲突的未提交变更)</check>
		<check>当前分支是合适的起始分支(feature/release分支从develop开始,hotfix分支从master开始)</check>
		<check>远程仓库已同步至最新状态</check>
	</pre-analysis>

	<analysis-quality>
		<check>变更分析覆盖了所有被修改的文件</check>
		<check>分支类型选择遵循Git Flow原则</check>
		<check>分支名称具有语义化且符合规范</check>
		<check>已考虑并处理边缘情况</check>
	</analysis-quality>

	<execution-safety>
		<check>目标分支(develop/master)存在且可访问</check>
		<check>建议的分支名称与现有分支无冲突</check>
		<check>用户拥有创建分支的适当权限</check>
	</execution-safety>
</validation>

Final Execution

最终执行

xml
<execution-protocol>
	<analysis-summary>
		<git-status>Output of git status command</git-status>
		<git-diff>Relevant portions of git diff output</git-diff>
		<change-analysis>Detailed analysis of what changes represent</change-analysis>
		<branch-decision>Explanation of why specific branch type was chosen</branch-decision>
	</analysis-summary>

	<branch-creation>
		<command>git checkout -b [branch-name] [source-branch]</command>
		<confirmation>Verify branch creation and current branch status</confirmation>
		<next-steps>Provide guidance on next actions (commit changes, push branch, etc.)</next-steps>
	</branch-creation>

	<fallback-options>
		<alternative-names>Suggest 2-3 alternative branch names if primary suggestion isn't suitable</alternative-names>
		<manual-override>Allow user to specify different branch type if analysis seems incorrect</manual-override>
	</fallback-options>
</execution-protocol>
xml
<execution-protocol>
	<analysis-summary>
		<git-status>git status命令的输出结果</git-status>
		<git-diff>git diff输出的相关部分</git-diff>
		<change-analysis>变更内容的详细分析</change-analysis>
		<branch-decision>选择特定分支类型的原因说明</branch-decision>
	</analysis-summary>

	<branch-creation>
		<command>git checkout -b [分支名称] [源分支]</command>
		<confirmation>验证分支创建成功及当前分支状态</confirmation>
		<next-steps>提供后续操作指导(提交变更、推送分支等)</next-steps>
	</branch-creation>

	<fallback-options>
		<alternative-names>如果首选名称不合适,建议2-3个替代分支名称</alternative-names>
		<manual-override>如果分析结果有误,允许用户指定不同的分支类型</manual-override>
	</fallback-options>
</execution-protocol>

Git Flow Reference

Git Flow参考

xml
<gitflow-reference>
	<main-branches>
		<master>Production-ready code, every commit is a release</master>
		<develop>Integration branch for features, latest development changes</develop>
	</main-branches>

	<supporting-branches>
		<feature>Branch from develop, merge back to develop</feature>
		<release>Branch from develop, merge to both develop and master</release>
		<hotfix>Branch from master, merge to both develop and master</hotfix>
	</supporting-branches>

	<merge-strategy>
		<flag>Always use --no-ff flag to preserve branch history</flag>
		<tagging>Tag releases on master branch</tagging>
		<cleanup>Delete branches after successful merge</cleanup>
	</merge-strategy>
</gitflow-reference>
xml
<gitflow-reference>
	<main-branches>
		<master>生产环境就绪代码,每次提交都是一次发布</master>
		<develop>功能集成分支,包含最新开发变更</develop>
	</main-branches>

	<supporting-branches>
		<feature>从develop分支创建,合并回develop</feature>
		<release>从develop分支创建,合并至develop和master</release>
		<hotfix>从master分支创建,合并至develop和master</hotfix>
	</supporting-branches>

	<merge-strategy>
		<flag>始终使用--no-ff参数以保留分支历史</flag>
		<tagging>在master分支上为发布版本打标签</tagging>
		<cleanup>成功合并后删除分支</cleanup>
	</merge-strategy>
</gitflow-reference>