Eu uso o git para projetos pessoais e acho ótimo. É rápido, flexível, poderoso e funciona muito bem para o desenvolvimento remoto.
Mas agora é obrigatório no trabalho e, francamente, estamos tendo problemas.
Pronto, o git não parece funcionar bem para o desenvolvimento centralizado em uma organização grande (com mais de 20 desenvolvedores) com desenvolvedores de habilidades e níveis variados de sofisticação - especialmente comparado com outros sistemas de controle de origem como Perforce ou Subversion, que visam esse tipo de ambiente. (Sim, eu sei, Linus nunca pretendeu isso para isso.)
Mas - por razões políticas - estamos presos ao git, mesmo que seja péssimo para o que estamos tentando fazer com ele.
Aqui estão algumas das coisas que estamos vendo:
- As ferramentas da GUI não são maduras
- Usando as ferramentas de linha de comando, é muito fácil estragar uma mesclagem e eliminar as alterações de outra pessoa
- Ele não oferece permissões de repositório por usuário além dos privilégios globais somente leitura ou leitura / gravação
- Se você tem permissão para QUALQUER parte de um repositório, pode fazer o mesmo com TODAS as partes do repositório, portanto não pode fazer algo como criar uma ramificação de rastreamento de pequenos grupos no servidor central que outras pessoas não podem mexer com.
- Fluxos de trabalho que não sejam "vale tudo" ou "ditador benevolente" são difíceis de incentivar, e muito menos impor
- Não está claro se é melhor usar um único repositório grande (que permite que todos mexam com tudo) ou muitos repositórios por componente (que causam dores de cabeça ao tentar sincronizar versões).
- Com vários repositórios, também não está claro como replicar todas as fontes que outra pessoa possui, retirando do repositório central, ou fazer algo como obter tudo a partir das 4:30 da tarde de ontem.
No entanto, ouvi dizer que as pessoas estão usando o git com sucesso em grandes organizações de desenvolvimento.
Se você estiver nessa situação - ou se você geralmente possui ferramentas, dicas e truques para tornar mais fácil e produtivo o uso do git em uma organização grande, onde algumas pessoas não são fãs da linha de comando - eu adoraria ouvir o que você tem sugerir.
BTW, eu já fiz uma versão desta pergunta no LinkedIn e não tenho respostas reais, mas muitas "nossa, eu adoraria saber isso também!"
ATUALIZAÇÃO: Deixe-me esclarecer ...
Onde trabalho, não podemos usar nada além de git . Não é uma opção. Estamos presos a isso. Não podemos usar mercurial, svn, bitkeeper, Visual Source Safe, ClearCase, PVCS, SCCS, RCS, bazar, Darcs, monótonos, Perforce, Fossil, AccuRev, CVS ou até o bom e velho projetor da Apple que usei em 1987. Portanto, enquanto você pode discutir outras opções, não receberá a recompensa se não discutir sobre o git.
Além disso, estou procurando dicas práticas sobre como usar o git na empresa . Coloquei uma lista completa de problemas que estamos tendo no topo desta pergunta. Novamente, as pessoas são bem-vindas para discutir teoria, mas se você quiser ganhar a recompensa, me dê soluções.
a process
... (eu odeio essa palavra)