specsfy-specialist-gitflow
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGitflow
Gitflow
Quando usar
适用场景
- Acionar quando a pessoa pedir explicitamente o modelo Gitflow (branches
/
main,master,develop,feature/*,release/*) ou quando já existir configuraçãohotfix/*(git flow) ou instrução do projeto declarando essa escolha.git config --get-regexp '^gitflow\.' - Acionar também para nomear, sequenciar ou fechar uma branch
,
feature/ourelease/dentro de um projeto que já declarou Gitflow como estratégia de branch.hotfix/ - Não acionar para propor Gitflow a um projeto que não pediu isso — a escolha
do modelo de branch é decisão explícita de quem conduz o projeto, nunca
inferida pela presença de uma branch chamada ou pelo volume de branches abertas.
develop - Não acionar para resolver um conflito já em andamento
() nem para desenhar o pipeline ou a promoção de artefato entre ambientes (
$specsfy-specialist-merge-conflict-resolution) — aqui o foco é a topologia e a política das branches, não a resolução textual nem a entrega.$specsfy-specialist-delivery-engineering
- 当用户明确要求使用Gitflow模型(/
main、master、develop、feature/*、release/*分支),或项目已配置hotfix/*(git flow),或有明确文档声明采用该模型时触发。git config --get-regexp '^gitflow\.' - 当已声明将Gitflow作为分支策略的项目中,需要对、
feature/或release/分支进行命名、排序或关闭操作时也可触发。hotfix/ - 请勿为未主动要求的项目提议使用Gitflow——分支模型的选择是项目负责人的明确决策,绝不能仅凭存在名为的分支或分支数量就推断采用Gitflow。
develop - 请勿用于解决已发生的冲突(),也不要用于设计流水线或环境间的制品推送流程(
$specsfy-specialist-merge-conflict-resolution)——此处重点是分支的拓扑结构和策略,而非文本冲突解决或交付流程。$specsfy-specialist-delivery-engineering
Fluxo
流程
- Confirmar que a pessoa pediu Gitflow explicitamente, ou apontar a configuração/instrução existente que já declara essa escolha, antes de aplicar qualquer convenção — nunca presumir Gitflow a partir da estrutura do repositório.
- Verificar o estado real das branches (,
git branch -a) para saber segit config --get-regexp '^gitflow\.'/mainemasterjá existem e se a nomenclatura das branches auxiliares já diverge do padrão adotado.develop - Definir com a pessoa os nomes das branches permanentes (de produção,
mainde integração) e os prefixos das branches de vida curta (develop,feature/,release/,hotfix/quando aplicável).support/ - Registrar a decisão como regra confirmada do projeto (grava em
$specsfy-aux-rules), incluindo prefixos, branch-alvo de cada tipo e política de merge — não deixar a convenção apenas verbal..specsfy/RULES.md - Orientar a abertura, a integração e o fechamento de cada tipo de branch:
parte de e volta para
feature/*;developparte derelease/*e vai paradevelopemain;developparte dehotfix/*e vai paramainemain; sempre comdevelop.merge --no-ff - Coordenar a tag de versão no merge de ou
release/*emhotfix/*, alinhando com a estratégia de versionamento já adotada pelo projeto (semver ou outra).main - Verificar que recebeu de volta toda correção aplicada em
developourelease/*antes de considerar o ciclo fechado — divergência aqui reaparece como regressão no próximo release.hotfix/*
- 在应用任何约定之前,确认用户已明确要求使用Gitflow,或存在已声明该选择的配置/文档——绝不能仅凭仓库结构就假定采用Gitflow。
- 检查分支的实际状态(、
git branch -a),确认git config --get-regexp '^gitflow\.'/main和master是否已存在,以及辅助分支的命名是否已偏离既定标准。develop - 与用户确定永久分支的名称(生产分支、集成分支
main)和短期分支的前缀(develop、feature/、release/,适用时添加hotfix/)。support/ - 将决策记录为项目的确认规则(写入
$specsfy-aux-rules),包括前缀、每种分支的目标分支以及合并策略——不要仅停留在口头约定。.specsfy/RULES.md - 指导各类分支的创建、集成和关闭:从
feature/*分支创建并合并回develop;develop从release/*创建,合并到develop和main;develop从hotfix/*创建,合并到main和main;所有合并均使用develop。merge --no-ff - 在或
release/*合并到hotfix/*时,协调版本标签的创建,与项目已采用的版本控制策略(如semver或其他)保持一致。main - 在认为周期结束前,确认已接收所有在
develop或release/*中应用的修复——此处的分歧会在下一次发布时以回归问题的形式重现。hotfix/*
Padrões
标准
- Usar para toda integração de
git merge --no-ff,feature/*erelease/*— merge fast-forward apaga o registro de que aquela branch existiu, do qual a auditoria de release do Gitflow depende.hotfix/* - Nomear com prefixo consistente e o mesmo separador em todo o projeto
(,
feature/<slug>,release/<versao>); não misturar convenções (hotfix/<versao-ou-slug>efeature-xno mesmo repositório).feature/y - Fazer e
release/*partirem exatamente do commit dehotfix/*oudevelopcorrespondente, sem cherry-pick seletivo de commits ainda não integrados.main - Aplicar em somente correção de bug, texto, documentação e preparação de release (changelog, versão) — funcionalidade nova não entra numa branch de release já aberta; volta para a próxima
release/*.feature/* - Fechar todo mesclando em
hotfix/*(com tag) e emmain(ou nadevelopaberta, se houver uma) na mesma operação — hotfix que só chega emrelease/*desaparece do próximo release.main - Apagar a branch de vida curta (,
feature/*,release/*) depois do merge confirmado nos dois destinos — branch finalizada e não apagada convida retrabalho sobre código já integrado.hotfix/*
- 所有、
feature/*和release/*的集成均使用hotfix/*——快进合并会抹去该分支存在的记录,而Gitflow的发布审计依赖于这些记录。git merge --no-ff - 在整个项目中使用一致的前缀和分隔符命名分支(、
feature/<slug>、release/<versao>);不要混合使用不同约定(同一仓库中同时存在hotfix/<versao-ou-slug>和feature-x)。feature/y - 和
release/*必须从对应的hotfix/*或develop提交节点创建,不要选择性挑选尚未集成的提交进行cherry-pick。main - 在分支中仅进行bug修复、文本调整、文档更新和发布准备(变更日志、版本号)——已开启的发布分支中不能添加新功能,新功能需放入下一个
release/*分支。feature/* - 关闭分支时,需同时合并到
hotfix/*(带标签)和main(若存在已开启的develop分支,则合并到该分支)——仅合并到release/*的热修复会在下一次发布中消失。main - 在确认合并到两个目标分支后,删除短期分支(、
feature/*、release/*)——已完成但未删除的分支会导致在已集成的代码上重复工作。hotfix/*
Antipadrões
反模式
- Push direto ou merge fast-forward em /
mainsem passar pordevelop,feature/ourelease/: quebra a rastreabilidade que justifica adotar Gitflow em vez de um modelo mais simples.hotfix/ - Funcionalidade nova adicionada dentro de uma já aberta "para aproveitar a janela": aumenta o escopo testado depois do corte e atrasa a liberação sem necessidade.
release/* - Hotfix mesclado apenas em , deixando
maindivergente: a próximadevelopcortada derelease/*reintroduz o bug já corrigido em produção.develop - Adotar Gitflow num projeto com deploy contínuo várias vezes ao dia: a
sobrecarga de branches longas de /
releaseconflita com entrega contínua; nesse contexto, avalie com a pessoa se GitHub Flow ou trunk-based atende melhor antes de aplicar Gitflow por hábito.hotfix - Confundir "temos uma branch chamada develop" com "o projeto usa Gitflow": sem a política de merge, os prefixos e o ciclo de release completos, é apenas uma branch com esse nome, não o modelo.
- 不经过、
feature/或release/分支,直接向hotfix//main推送或进行快进合并:破坏了采用Gitflow而非更简单模型的核心价值——可追溯性。develop - 为了“利用窗口”在已开启的分支中添加新功能:增加了截版后需要测试的范围,毫无必要地延迟发布。
release/* - 热修复仅合并到,导致
main分支出现分歧:从develop分支创建的下一个develop会重新引入已在生产环境修复的bug。release/* - 在每天多次持续部署的项目中采用Gitflow:/
release长分支带来的额外负担与持续交付冲突;这种情况下,应先与用户评估GitHub Flow或trunk-based是否更适用,不要仅凭习惯就应用Gitflow。hotfix - 将“我们有一个名为develop的分支”等同于“项目使用Gitflow”:没有完整的合并策略、前缀规则和发布/热修复周期的话,这只是一个同名分支,并非Gitflow模型。
Validação
验证
- (ou
git log --graph --oneline --all) mostrando os mergesgit log --first-parent mainde cada--no-ff,feature/ourelease/como commits de merge identificáveis, não commits lineares indistinguíveis.hotfix/ - e
git branch -a --merged developconferidos antes de apagar uma branch de vida curta, garantindo que o merge realmente aconteceu nos dois destinos esperados.git branch -a --merged main - Tag de versão presente em para cada
mainourelease/*fechado (hotfix/*), e a mesma correção presente emgit tag --contains <commit-do-merge>(developou equivalente).git log develop --oneline | grep <commit> - (ou instrução equivalente do projeto) registrando a convenção de nomes e a política de merge, revisitada por
.specsfy/RULES.mdquando alguém a violar.$specsfy-aux-rules - Não declarar "o projeto segue Gitflow" apenas porque existe uma branch
; a evidência exige prefixos consistentes, merges
developrastreáveis e o ciclo de--no-ff/releasefechado nos dois destinos.hotfix
- 使用(或
git log --graph --oneline --all)查看,每个git log --first-parent main、feature/或release/分支的hotfix/合并应显示为可识别的合并提交,而非无法区分的线性提交。--no-ff - 在删除短期分支前,检查和
git branch -a --merged develop,确保合并确实已在预期的两个目标分支完成。git branch -a --merged main - 每个已关闭的或
release/*分支在hotfix/*上都有对应的版本标签(main),且相同的修复已同步到git tag --contains <commit-do-merge>(develop或类似命令)。git log develop --oneline | grep <commit> - (或项目等效文档)已记录命名约定和合并策略,当有人违反时,可通过
.specsfy/RULES.md重新审查。$specsfy-aux-rules - 不能仅因为存在分支就宣称“项目遵循Gitflow”;必须有一致的前缀、可追溯的
develop合并,以及完整的--no-ff/release双目标合并周期作为证据。hotfix
Skills relacionadas
相关技能
- quando uma integração de
$specsfy-specialist-merge-conflict-resolution,feature/ourelease/já em andamento gerar conflito — esta skill decide a topologia e a política de branch, a outra resolve o conflito textual ou semântico já aberto.hotfix/ - quando o merge em
$specsfy-specialist-delivery-engineeringou a tag de release precisar disparar pipeline, build de artefato ou promoção entre ambientes — esta skill entrega a branch e a tag corretas, a outra decide como o pipeline reage a elas.main
Leia references/standards.md para o mapa completo
de branches, os comandos equivalentes em Git puro e as fontes
oficiais do modelo.
git flow- 当、
feature/或release/分支集成过程中产生冲突时,使用hotfix/——本技能负责分支拓扑和策略,另一技能负责解决已出现的文本或语义冲突。$specsfy-specialist-merge-conflict-resolution - 当合并到或发布标签需要触发流水线、制品构建或环境推送时,使用
main——本技能提供正确的分支和标签,另一技能负责决定流水线如何响应这些操作。$specsfy-specialist-delivery-engineering
阅读references/standards.md获取完整的分支图谱、纯Git中等效的命令以及该模型的官方来源。
git flow