我们是一组开发人员,负责处理同一组文件。我想确保没有人做git提交-a -m或git commit -am如何禁止git commit -a选项
包括我在内的开发人员有这么坏的git commit -am/ -a -m
,我们有很多特定于提交提交的机器的conf文件每次。我可以要求我们所有人使用--assume - 不变,但我想让开发人员无法使用-a标志
我可以通过某种方式实现此目的。
我们是一组开发人员,负责处理同一组文件。我想确保没有人做git提交-a -m或git commit -am如何禁止git commit -a选项
包括我在内的开发人员有这么坏的git commit -am/ -a -m
,我们有很多特定于提交提交的机器的conf文件每次。我可以要求我们所有人使用--assume - 不变,但我想让开发人员无法使用-a标志
我可以通过某种方式实现此目的。
我建议你解决这个问题是不同的:
当你坚持禁用-a标志时:好的,git是开源的。查找和禁用读取-a命令行参数并重新编译的代码应该不那么难。但是这意味着每当新版本的git发布时你都必须重新做,所以我真的会提出反对的建议。
即使我反对重写git。我会尽力学会编写precommit hook。是否有很好的资源? –
@RanjithR您可以从任何git存储库中的'.git/hooks/*。sample'文件开始。但我不知道是否'-a'没有在所有调用的文件中调用该钩子 –
我认为.gitignore文件是更好的解决方案。它仍然允许人们通过使用-a来节省时间,但是阻止他们提交任何特定于计算机的文件。 – Philipp
你可以编写一个包装git
脚本来检查命令是否为commit
并且设置了-a
标志。然后,您可以删除它并将其他所有内容传递给实际的git
,或者提示“Bad User!Bad!”。将该脚本放在实际git路径之前的路径中,或为您的gitwrap
创建一个别名。
@PiotrZierhoffer发现这一点:
对于一个例子是在这里: Disable -m in git
灵感来自VonC(还有谁......):http://stackoverflow.com/a/2501817/321973 –
一个例子就是在这里:http://stackoverflow.com/a/22160650/882200 –
我不能回答这个问题,但如果目的是专门防范提交conf文件,那么也许创建一个'.gitignore'可能会有所帮助。 – chipschipschips