2013-03-08 168 views
4

比方说,你有一个父项目和子模块。如何阻止用户在git中提交子模块?

有一个用户拥有父项目的读/写权限,但只有子模块的读权限。

如何阻止用户对子模块进行更改并提交它,然后在父项目中提交并推送更新后的引用以此新提交?

用户将无法将其更改推送到子模块,因为他们没有权限。当另一个用户现在拉下父项目时,他们将引用一个尚未推送到服务器的子模块提交。

回答

3

解决办法有两个:

  1. 告诉你的用户使用新--recurse-submodules=check选项推
  2. 或建立一个server-side hook,检查为新的子模块检查时,in this answer
+0

我不我认为这是正确的。这来自git手册:“当开发人员在子模块中进行本地更改但不会将其推送到公共服务器时,会出现一个常见问题,然后他们提交一个指向该非公共服务器的指针并推送超级项目。当其他开发人员尝试运行git子模块更新时,子模块系统找不到所引用的提交,因为它只存在于第一个开发人员的系统上。“ – Rupert 2013-03-08 15:07:24

+0

@Rupert你说得对,我已经更新了我的答案 – CharlesB 2013-03-08 15:10:11

+1

谢谢CharlesB。这看起来不错。我会检查出来并可能接受这个答案。 – Rupert 2013-03-08 15:18:17