Qual é a diferença entre o tipo de ramificação desenvolvimento vs. recurso?
+ Master
+ Develop
+ Feature
+ Bug
+ Proof of concept
+ Release
+ Hotfix
Qual é a diferença entre os tipos Master
vs. Release
?
Qual é a diferença entre os tipos Feature
vs. Develop
?
3 answers
Para o fluxo de trabalho git, tal como apresentado em[1]:
-
feature
: todas as funcionalidades / novas funções / principais refactorings são feitas emfeature
ramos, que se ramificam e são fundidos de volta para o ramodevelop
(normalmente após algum tipo de revisão por pares). -
release
: Quando um número suficiente de recursos se acumula ou o próximo período de tempo de lançamento se aproxima, um novo ramorelease
é ramificado foradevelop
. É exclusivamente dedicado a testes/correção de bugs e qualquer limpeza necessário (por exemplo, mudar alguns nomes de caminho, diferentes valores por defeito para instrumentação, etc.).). -
master
uma vez que o QA está satisfeito com a qualidade, o ramorelease
é fundido emmaster
(e também de volta adevelop
). Este é então o que é enviado / usado pelos clientes. -
hotfix
se um problema maior é encontrado após a liberação, a correção é desenvolvida em um ramohotfix
, que é ramificado fora do mestre. Estes são os únicos ramos que alguma vez se ramificarão. de mestre. - Nota: qualquer commit em
master
é um commit merge (quer de um ramorelease
quer de um ramohotfix
) e representa uma nova versão que é enviada para o cliente.
Por favor, esteja ciente de que este modelo é principalmente destinado a: a) grandes projetos de software que seguem b) versão clássica de lançamento e c) ter uma equipe de QA separada. Muitos repositórios populares no GitHub seguem um modelo mais simples.
A diferença entre master
e release
é que o ramo master
é o que os seus clientes/utilizadores estão a usar. É o ramo realmente instalado ou vendido.
Em muitas equipas o ramo master
(normalmente também chamado master
) é também o ramo release
. Mas nem sempre é assim. Em grandes empresas ou empresas com um teste separado ou departamento/equipe de QA o ramo mestre é o ramo que está sendo vendido para os clientes, mas o ramo de lançamento é o que está sendo testado. Note que para alguns projetos que executam um teste completo podem levar uma semana ou mais, então faz sentido ter um branch que testadores podem testar, mas é estável (os desenvolvedores não pressionam constantemente atualizações).
A diferença entre feature
e develop
vem do mesmo raciocínio. O ramo develop
(normalmente denominado develop
ou dev
) é o ramo estável do programador. No software de controle de fonte tradicional o ramo de desenvolvimento é o seu servidor de repo. É o ramo que todos os desenvolvedores têm em comum. É o ramo que você começa desenvolvimento com.
Um ramo de recurso, por outro lado, é o seu próprio ramo pessoal. Durante o desenvolvimento de um recurso / história / módulo você vai, naturalmente, modificar o código muito. E para tirar proveito do git você deve se comprometer cedo e commit muitas vezes. Mas o código que você está trabalhando é por definição instável (não finalizado) e pode causar mudanças de quebra em outros desenvolvedores. Então você desenvolve em seu próprio branch (ramificado fora do develop) até que seu código está pronto para ser fundido de volta para desenvolver.
Qual é a diferença entre os tipos
Master
vs.Release?
Qual é a diferença entre os tipos
Feature
vs.Develop
?
Não há diferença.
Os nomes das sucursais são convenções estabelecidas por equipas, Não regras impostas pelo git.
Git não se importa com o que você chama de seus ramos, quantos sub-ramos você cria, quando você os funde, etc. etc. etc. Para O Git... um ramo é um ramo é um ramo.
Em muitas equipas, os nomes dos ramos seguem uma convenção definida apenas para facilitar a compreensão partilhada... mas como vemos tantas vezes, a vossa Convenção não importa para a tecnologia. É preciso um humano para dar um conceito significado , por isso sinta-se livre para nomear os seus ramos de qualquer maneira que você achar significativo.