Git能否设置目录权限? 好像...

最近公司改用Git托管代码,对于一个项目,想给每个人设置不同的访问权限,

当在本地拉取项目时只会拉取自己权限之内的文件。

公司的项目是MVC结构的,要给前端、后台、运维、UI区分权限的话,

好像实现难度很大。。。

 

摘自一位知乎大神的回复:

作者:代码罐头
链接:https://www.zhihu.com/question/22363313/answer/142703190
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

回答什么GIT权限管理的真的知道GIT的权限管理意味着什么么?

GIT的权限管理是说控制用户能不能PUSH或者DELETE分支,或者能不能PUSH代码,而不是能不能访问某个目录的文件。

对目录和文件的可读是GIT的最基本要求,不可能做到针对目录级别的不可读

唯一可行的就是多建立几个独立库,然后用外部引用的方式弄到一个总的GIT库里。

再独立库里面做用户的分配,但是GIT不能支持某个目录下面单独指定文件的不可读,所以你要是做复杂读写权限控制,除非一个愿意细化到某些配置文件就独立开库并指定用户,否则别找虐了。

如果要的就是集中式的管理模式,那用Git干嘛呢?找虐?

从技术上将,Git可能永远也做不到类似SVN的路径授权(读授权):

• 如果允许按照路径授权,则各个克隆的关系将不再是平等的关系,有的内容多,有的内容少,分布式的理念被破坏

• 如果只有部分路径可读,则克隆出来的提交和原始提交的提交ID可能不同。因为提交ID是和提交内容有关的,克隆中提交的部分内容被丢弃,势必提交的ID也要重新计算

• 允许全部代码可读,只允许部分代码可写,在版本控制的管理下,是没有多大实际意义的,而且导致了提交的逻辑上的不完整。

那么有什么办法来解决授权的问题?

1. 公司内部代码开放。即代码在公司内部,对项目组成员一视同仁的开放。

2. 公司对代码库进行合理分解,对每个代码库分别授权。即某个代码库对团队成员完全开放,对其它团队完全封闭。

3. 公司使用Subversion做集中式的版本控制,个人和/或团队使用 Git-svn。这样在无法改变公司版本控制策略时,程序员可以采用的变通之法。

4. Git服务器的部署实际上可以使用钩子对分支和路径进行写授权,即可以控制谁能够创建分支,能够写特定文件。 

 

好像真的有点难度!

你可能感兴趣的:(Git)