Impondo commit de mudanças no Git

0

Eu gostaria de ter certeza de que todas as alterações que as pessoas fazem nos arquivos em um diretório compartilhado são rastreadas - confirmadas no Git. Eu encontrei maneiras de evitar fazer o commit se um arquivo for alterado, no entanto, não descobri uma maneira de garantir que cada usuário seja forçado a confirmar suas alterações.

Esquerdinha G Balogh
fonte
Estamos falando de arquivos compartilhados em um diretório de projeto (Git)? Ou apenas algum diretório em um servidor? De talvez em uma ação NFS? Por favor, explique seu caso de uso.
mtak
Em um diretório compartilhado - atualizei a pergunta para refleti-la.
Lefty G Balogh
Apenas brainstorming, mas como o kernel reforçaria algo assim? Dê acesso ao RW, mas apenas grave o arquivo no disco se alguém fez um commit do Git (qual git não pegaria, porque o arquivo no disco ainda não mudou)? Os usuários sempre poderão alterar o arquivo e, em seguida, fazer logoff, mesmo se o git solicitar uma mensagem de confirmação, por exemplo. E o que aconteceria se alguém não tivesse uma chave ssh instalada, mas tivesse acesso de gravação ao arquivo? Você poderia fazer um empacotador de shell de algum tipo, para que as pessoas não se esqueçam de cometer, mas impor estritamente isso parece impossível.
mtak
Exatamente. Eu estava esperando que você não dissesse isso, no entanto. Esse é exatamente o meu problema e estou tentando encontrar uma maneira engenhosa de contornar isso. Eu posso garantir que quem quer que mude o arquivo tenha credenciais Git apropriadas, mas fazer o commit é o desafio aqui.
Lefty G Balogh
1
Parece que você está usando mal o git. Você precisa de algo como um sistema de arquivos somente de anexos. Se você insistir em manter o git, torne a pasta compartilhada um repositório nu somente para leitura e permita que os usuários o pressionem.
gronostaj

Respostas:

1

A maneira mais fácil de impor isso é revogar os direitos de gravação nesse diretório. Peça aos usuários que façam mudanças em seu próprio clone, empurrem para o repositório central e confiem em scripts de gancho pós-recebimento para atualizar o diretório "principal".

grawity
fonte
Obrigado. Definitivamente vale a pena um upvote. Você consegue ver alguma maneira de evitar clones locais?
Lefty G Balogh
1
Não. Desde que as pessoas possam editar arquivos "ao vivo" diretamente, eles podem editar arquivos diretamente - você não pode fazer com que o PC os prenda até eles confirmarem as edições, ou o que for.
Grawity