Somos uma pequena equipe de desenvolvedores da Web atualmente usando o subversion, mas em breve estamos mudando para o github.
Estou analisando diferentes tipos de fluxos de trabalho do github e não temos certeza se todo o conceito de bifurcação no github para cada desenvolvedor é uma boa idéia para nós.
Se usarmos garfos, entendo que cada desenvolvedor terá seus próprios repositórios remotos e locais privados. Estou preocupado que isso torne difícil empurrar os conjuntos de alterações e muito complexos. Além disso, minha maior preocupação é que ele forçará cada desenvolvedor a ter 2 controles remotos: origin (que é o fork remoto) e um upstream (que é usado para "sincronizar" as alterações do repositório principal). Não tenho certeza se é uma maneira tão fácil de fazer as coisas.
Isso é semelhante ao fluxo de trabalho explicado aqui: https://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Git-workflow
Se não usarmos garfos, provavelmente podemos nos dar bem usando um repositório central, criando um ramo para cada tarefa em que estamos trabalhando e mesclando-os no ramo de desenvolvimento no mesmo repositório. Isso significa que não poderemos restringir a mesclagem de ramificações e pode ser um pouco confuso ter muitas ramificações no repositório central.
Alguma sugestão de equipes que tentaram os dois fluxos de trabalho?
Respostas:
Acho que seu medo de bifurcar-se vem da fusão menos do que estelar da SVN - porque não é a bifurcação que causa o problema - é a fusão.
Mergulhe - você descobrirá que é realmente ótimo! Você não precisa sobrecarregar (não garfo para todas as alterações em todos os arquivos), mas pode garfo para recursos e entrar novamente.
Pense no GitHub como várias versões dignas de aprimoramento em muitos dos conceitos principais no controle de origem.
O conceito de uma ramificação "estável" e uma bifurcação de "desenvolvimento ativo" também abrangem muitos desses problemas, se você hesitar em fazer bifurcação. : P
fonte
Tentamos ambos, com desenvolvedores que estão muito à vontade no svn. E se você é um grupo de desenvolvedores que já trabalham juntos e confiam uns nos outros com direitos de confirmação, provavelmente achará mais fácil manter um repositório único e central no git e adicionar todos vocês como colaboradores desse repositório.
Ocasionalmente ainda fazemos garfos particulares, mas isso geralmente é para mudanças exóticas ou testes individuais, nos quais o resto normalmente não está interessado, mas que desejamos armazenar remotamente de qualquer maneira.
Eu começaria com um único repositório central e apenas trabalharia com o git por um tempo. Talvez o garfo particular cresça em você, talvez não. Qualquer um serve.
fonte
No git, um garfo é realmente apenas outro ramo. Com o fluxo de trabalho de bifurcação para cada desenvolvedor, você efetivamente exige que cada desenvolvedor tenha uma ramificação pública (remota) para rastrear suas alterações de desenvolvimento. Isso é útil para poder colaborar diretamente (ponto a ponto) entre desenvolvedores. Você terá que mesclar as alterações de cada desenvolvedor no repositório central de qualquer forma, então não acho que haja muita sobrecarga adicionada por isso.
fonte
Para uma pequena equipe de 2 a 3 desenvolvedores, não há problema em usar ramificações no repositório para gerenciar correções e recursos. O problema é quando você tem mais desenvolvedores do que isso e mais recursos e correções que estão sendo desenvolvidos.
Quando esse for o caso, seu principal repositório no Github terá centenas de ramos; alguns serão velhos, esquecidos e imersos.
Você também terá problemas com a colaboração em que alguém está forçando uma ramificação compartilhada que está no repositório. Isso significa que ninguém pode colaborar adequadamente nesse ramo, pois um empurrão é uma reescrita da história.
A bifurcação de um repositório facilita o rastreamento de quais ramificações estão em andamento e quais são úteis. Mantém o repositório principal mais limpo.
No entanto, sua infraestrutura de teste pode estar usando o repositório principal, por isso pode ser mais difícil testar alterações no repositório bifurcado, a menos que você tenha enviado a ramificação para o upstream. Pode ser complicado descobrir quando a ramificação e a bifurcação são melhores, mas em geral, quando a equipe tem mais de 4 pessoas e há muitas correções e recursos, a bifurcação é a melhor opção.
fonte