4

我们是一组开发同一组文件的开发人员。我想确保没有人执行 git commit -a -m 或 git commit -am

包括我在内的开发人员都有这个坏习惯,git commit -am/ -a -m我们有很多特定于机器的配置文件,每次都会提交。我可以要求我们所有人使用 --assume-unchanged 但我想让开发人员根本无法使用 -a 标志

我可以以某种方式破解来实现这一目标吗?

4

2 回答 2

5

我建议您以不同的方式解决此问题:

  1. 使用.gitignore 文件专门排除不能提交或
  2. 使用预提交挂钩自动拒绝看起来像是使用 -a 进行的提交。

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

于 2012-09-27T09:40:48.893 回答
2

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

@PiotrZierhoffer 发现了这个:

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

于 2012-09-27T09:47:33.040 回答