2012-09-27 72 views
4

我们是一组开发人员,负责处理同一组文件。我想确保没有人做git提交-a -m或git commit -am如何禁止git commit -a选项

包括我在内的开发人员有这么坏的git commit -am/ -a -m,我们有很多特定于提交提交的机器的conf文件每次。我可以要求我们所有人使用--assume - 不变,但我想让开发人员无法使用-a标志

我可以通过某种方式实现此目的。

+4

我不能回答这个问题,但如果目的是专门防范提交conf文件,那么也许创建一个'.gitignore'可能会有所帮助。 – chipschipschips

回答

5

我建议你解决这个问题是不同的:

  1. 使用.gitignore file特别排除,绝不能提交或
  2. 使用pre-commit hook自动拒绝提交看起来像是用作了文件-一个。

当你坚持禁用-a标志时:好的,git是开源的。查找和禁用读取-a命令行参数并重新编译的代码应该不那么难。但是这意味着每当新版本的git发布时你都必须重新做,所以我真的会提出反对的建议。

+0

即使我反对重写git。我会尽力学会编写precommit hook。是否有很好的资源? –

+0

@RanjithR您可以从任何git存储库中的'.git/hooks/*。sample'文件开始。但我不知道是否'-a'没有在所有调用的文件中调用该钩子 –

+2

我认为.gitignore文件是更好的解决方案。它仍然允许人们通过使用-a来节省时间,但是阻止他们提交任何特定于计算机的文件。 – Philipp

2

你可以编写一个包装git脚本来检查命令是否为commit并且设置了-a标志。然后,您可以删除它并将其他所有内容传递给实际的git,或者提示“Bad User!Bad!”。将该脚本放在实际git路径之前的路径中,或为您的gitwrap创建一个别名。

@PiotrZierhoffer发现这一点:

对于一个例子是在这里: Disable -m in git

+0

灵感来自VonC(还有谁......):http://stackoverflow.com/a/2501817/321973 –

+2

一个例子就是在这里:http://stackoverflow.com/a/22160650/882200 –