instalando o próprio Git Server, envie o código após a permissão concedida

0

Estou tentando instalar um servidor Git em uma caixa do RedHat 6.5 | Estou seguindo estes tutoriais: 1 , 2 , 3 , e para ser honesto, quanto mais eu leio, mais as coisas ficam obscuras.

Se eu for criar um usuário git que será o dono dos repositórios principais e também responsável por fazer os commits, como evito que um desenvolvedor insira um código incorreto (gitolite, há algo novo?) ?
Qual é a configuração mais simples para o servidor git (eu adoraria o gitlab, mas o meu chefe não aceitará isso) enquanto permite o desenvolvedor empurrar apenas quando o código foi revisado e recebeu permissão para fazer o push.

nota: Todos os desenvolvedores têm acesso ssh ao servidor. e eu coletei as chaves ssh.pub deles

    
por JAT2007 09.05.2014 / 20:18

2 respostas

1

Para responder à sua pergunta:

If I'm to create a git user wich will be the owner of the main repos and also in charge of doing the commits, how do I prevent a developer from pushing a bad code?

A resposta não é criar um usuário git. Você pode controlar as permissões de acesso ao repositório remoto com usuários e grupos padrão do UNIX. Como o git envia um trabalho pelo SSH, desde que você possa executar o SSH no servidor que hospeda o repositório e tenha acesso de leitura ao repositório por meio de sua conta no servidor, é possível ler, clonar e extrair dos repositórios. Se você tiver permissões de gravação no repositório, também poderá enviar confirmações.

    
por 09.05.2014 / 22:37
0

Uma das coisas habilitadas por padrão no git é:

git push --force

Nos casos normais, você deve sempre desabilitar isso no repo via:

git config --system receive.denyNonFastForwards true

o problema pode vir com o cenário de fluxo de trabalho de mesclagem quando você pode ter muitas solicitações de pull, mas sempre a melhor solução é ter boas tarefas de desenvolvimento separadas e concentradas onde os desenvolvedores realmente podem entender e não comprometer muito (principalmente porque eles não entenda a natureza do controle de versão) e se isso for aceitável, você terá menos conflitos. Bom treinamento e compreensão são sempre os melhores. Além disso, você pode evitar isso com os commits de rebase localmente. A segunda alternativa é o Github, talvez. Nesse cenário, você não permite que mais de um mantenedor envie para os ramos importantes no repositório autoritativo

    
por 09.05.2014 / 21:50