É uma boa prática ter uma ramificação remota para cada desenvolvedor?

11

É uma boa prática ter uma ramificação remota para cada desenvolvedor individual no projeto?

Estamos usando o Git com os seguintes ramos:

  • mestre
  • liberação
  • desenvolve

Se cada desenvolvedor tivesse sua própria ramificação, eles poderiam inserir código em suas ramificações e outros poderiam mesclar essas alterações em suas próprias ramificações.

balanv
fonte
11
Me lembra os espaços de trabalho do Accurev, exceto que não estão vinculados ao endereço MAC de uma determinada máquina. Eu gosto disso.
28613 Brandon
possível duplicação de Para ramificar ou não ramificar?
Gnat
11
Por que o nat possui uma ramificação exclusiva para cada novo recurso que está sendo adicionado?
Martin York
@Loki Sim .. é uma boa idéia ..
balanv

Respostas:

4

Não! É uma boa prática ter um namespace de filial remota para cada desenvolvedor.

Uma única ramificação muitas vezes não é suficiente; portanto, o desenvolvedor acabaria rebobinando muito ou não seria muito útil. Você prefere dizer que um desenvolvedor pode colocar o que quiser sob o nome deles/ . Eles podem usá-lo para publicar versões de visualização para outras pessoas, fornecendo versão para outra pessoa testar ou até mesmo para integrar outra pessoa.

Você também pode usar isso para fornecer ramificações ao integrador ou usar nomes baseados em tarefas. Os nomes baseados em tarefas geralmente são mais fáceis de rastrear para o integrador, mas fazem os desenvolvedores pensarem mais sobre a nomeação e as pessoas não gostam de pensar. Não sei o que funcionará melhor na prática; pode até depender da equipe em particular.

Jan Hudec
fonte
2

Provavelmente eu não daria a cada desenvolvedor uma filial no servidor central, a menos que você tenha algum tipo de infraestrutura no estilo github que permita criar e destruir as próprias ramificações e documentar claramente para que servem. Alguns desenvolvedores precisarão de mais de um ramo e outros não precisarão de nenhum, mas você está criando uma confusão para que todos possam resolver e sobrecarga administrativa.

Em vez disso, eu encorajaria o tipo de compartilhamento orgânico em que o git se destaca. É muito fácil criar um clone simples em sua própria máquina e tornar essa pasta um compartilhamento SMB somente leitura para que outras pessoas possam extrair. De fato, me surpreenderia muito se vários de seus desenvolvedores ainda não estivessem fazendo isso.

Karl Bielefeldt
fonte
11
Por padrão, todos podem sempre criar uma ramificação. O Github permite criar repositórios inteiros, mas isso é um exagero nesse caso.
Jan Hudec
1

Depende de como sua equipe e tarefas de desenvolvimento estão organizadas. Na minha opinião, o modelo que você especificou funcionaria melhor se:

  1. Cada desenvolvedor trabalha sozinho em tarefas independentes.
  2. Todos os desenvolvedores estão contribuindo para a mesma tarefa.

Onde isso pode não funcionar bem é se você tiver projetos de recursos simultâneos em desenvolvimento e cada um deles tiver vários desenvolvedores trabalhando neles.

Brandon
fonte
1

Dar a cada desenvolvedor sua própria ramificação pode ser útil se todos estiverem trabalhando em coisas diferentes que podem tocar nos mesmos arquivos. Isso pode ajudar a evitar pisar nos dedos uns dos outros, mas exigirá que todos se fundam com frequência e sejam responsáveis ​​ao gerenciar conflitos. É o que é feito no meu escritório e funciona muito bem, além do raro dia em que você precisa mesclar manualmente metade dos arquivos editados.

Se você tiver vários desenvolvedores trabalhando no mesmo recurso, é provavelmente melhor criar ramificações com base no recurso em desenvolvimento, e não no desenvolvedor.

Ryathal
fonte
1

Se você estiver trabalhando com o Git, experimente Solicitações de Pull.

Em resumo, você primeiro mescla a ramificação principal em sua ramificação atual. Quaisquer conflitos de mesclagem estarão em sua filial local. Isso é bom porque seu ramo mestre nunca é quebrado. Se você realmente errar, você tem um commit local ao qual pode reverter.

Depois de concluir a mesclagem, você pede a outra pessoa da equipe para revisar e mesclar sua ramificação na ramificação mestre. Nunca mescle o seu! Desde que ninguém tenha se infiltrado e feito outra solicitação de recebimento, você terá a garantia de mesclar com êxito. Como todos estão cientes da solicitação de recebimento, você não deve ter várias pessoas se unindo ao mestre ao mesmo tempo.

Depois de se acostumar com esse processo, tente mesclar o mais rápido possível - uma espécie de integração contínua de um homem pobre. Quanto menos tempo entre os conflitos, melhor. Você identificará quando duas pessoas estão duplicando esforços e elas podem se unir. Alguns lugares serão mesclados toda vez que eles concluem um requisito, que pode ser a cada duas horas. Eu recomendo mesclar pelo menos uma vez por semana; caso contrário, você precisará interromper suas tarefas melhor.

Normalmente, crio um ramo por tarefa. O Git é bom porque distingue entre confirmações e envios locais. Isso fornece alguns dos benefícios de cada pessoa ter sua própria ramificação sem toda a complexidade.

Travis Parks
fonte