É 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.
version-control
git
branching
balanv
fonte
fonte
Respostas:
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.
fonte
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.
fonte
Depende de como sua equipe e tarefas de desenvolvimento estão organizadas. Na minha opinião, o modelo que você especificou funcionaria melhor se:
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.
fonte
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.
fonte
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.
fonte