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.


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".


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.