Git 远程仓库默认权限问题的解决

多人共同开发维护一个项目时,对整个项目文件互有拉取、推送等行为。为防止操作时文件权限出现冲突,可有以下2种方法解决:

1. 本地git的远端设置中,连接远程仓库时多人使用同一个用户名,该用户名为git远程仓库的拥有者

2. 不同开发者需使用不同的用户名连接时,会出现文件权限冲突,这是因为 git 仓库使用的是对象存储,每次改动会新增若干对象文件(具体对象文件在 /.git/objects 下),而新增的对象文件权限属性由系统控制,默认为755,即非文件拥有着无法进行写入(推送)。这里需要将 git 仓库下文件的默认权限设置为同组用户均可读写执行。具体方法是:

在初始化仓库时的语法:

git init --bare --shared[=(false|true|umask|group|all|world|everybody|0xxx)]

如果仓库已经启用,在远程仓库目录下更改 git 配置的语法:

git config core.sharedRepository [(false|true|umask|group|all|world|everybody|0xxx)]

实践:因本人需要设置该仓库下所有新生成的对象文件的默认权限为770,即拥有者和同组用户拥有读写执行权限,代码如下:

git init --bare --shared=0770
//初始化仓库时
git config core.sharedRepository 0770
//已启用后配置
posted @ 2018-11-23 20:22  声皦皦而弥厉  阅读(5034)  评论(0)    收藏  举报