如何防止Git推送用户特定文件?

时间:2016-12-16 12:59:52

标签: git

我通过Git与同事合作。有些文件通常不应该修改,但可能会偶然发生。而且,他对Git没有经验。

在他的Git中进行设置的最佳方式是什么

  • 在git push上,他永远不会覆盖我的特殊目录
  • 中服务器上的文件
  • 在git pull(或类似命令)上,他将始终使用服务器中的版本覆盖该目录(即使他在本地更改了此目录中的文件)

2 个答案:

答案 0 :(得分:1)

您是否可以控制服务器?一个pre-receive挂钩检查推送器和推送的文件,并阻止任何违反策略的推送都可以做你想要的。

如果这些文件都是相关的,我不喜欢制作多个小型回购。

至于确保用户对这些文件的本地更改被覆盖了...关于允许你信任的人如此少地触及你的代码的哲学差异...他们需要做他们的git pull通过一个包装脚本,后来执行git checkout -- <restricted paths>之类的操作,或者交替使用类似的post-pull挂钩。两者仍然需要遵守运行包装器或安装挂钩。

答案 1 :(得分:0)

您应该为需要单独权限的文件创建单独的repo。然后,对于不应修改这些文件的人来说,很容易拒绝对该回购的推送访问。您可以将其中一个repos作为另一个的子模块,以使它们保持同步。&#34;