instalando o próprio servidor Git, envie o código após receber permissão

instalando o próprio servidor Git, envie o código após receber permissão

Estou tentando instalar um servidor Git em uma caixa RedHat 6.5.
Estou seguindo estes tutoriais:1,2,3, e para ser honesto, quanto mais 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 envie um código ruim (gitolite, tem algo mais novo?)?
Qual é a configuração mais simples para o servidor git (eu adoraria o gitlab, mas meu chefe não permitirá isso), permitindo ao desenvolvedor enviar apenas quando o código for revisado e receber permissão para fazer o push.

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

Responder1

Para responder à sua pergunta:

Se eu quiser 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 envie um código incorreto?

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 push funciona por meio de SSH, contanto que você possa usar SSH para o servidor que hospeda o repositório e tenha acesso de leitura ao repositório por meio de sua conta no servidor, você poderá ler, clonar e extrair dos repositórios. Se você também tiver permissões de gravação no repositório, também poderá enviar commits.

Responder2

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

git push --force

Nos casos normais você deve sempre desabilitar isso no repositório via:

git config --system receive.denyNonFastForwards true

O problema pode surgir com o cenário de fluxo de trabalho de mesclagem, quando você pode ter muitas solicitações pull, mas sempre a melhor solução é ter uma boa mesclagem e tarefas de desenvolvimento separadas, onde os desenvolvedores realmente possam entender o git e não comprometer tanto (principalmente porque eles não entendem a natureza de controle de versão) e se estiver tudo bem você terá menos conflitos. Um 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 faça push para as ramificações importantes no repositório oficial

informação relacionada