Qual é a diferença entre o tipo de ramificação desenvolvimento vs. recurso?

Li poucos artigos sobre as melhores práticas do Git flow. Existem muitos tipos de branch git (por exemplo: [1], [2]):

+ 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?

[1] http://nvie.com/posts/a-successful-git-branching-model/

[2] http://developer.exoplatform.org/#id-branching-model

Author: marc_s, 2016-09-20

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 em feature ramos, que se ramificam e são fundidos de volta para o ramo develop (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 ramo release é ramificado fora develop. É 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 ramo release é fundido em master (e também de volta a develop). 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 ramo hotfix, 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 ramo release quer de um ramo hotfix) 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.

 39
Author: MikeMB, 2020-03-18 10:10:32

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.

 12
Author: slebetman, 2018-08-15 03:59:37
Só porque ainda ninguém o disse numa declaração clara, e isso teria respondido à pergunta por mim...

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.
 3
Author: jeremy, 2020-06-20 09:12:55