Linux 多用户远程,实战经验:Linux下Git在多用户协作场景下的使用

测试环境

CentOS 7.3

Git: 1.8.3.1

服务器IP: 192.168.30.26

建立项目成员

1) 使用管理员账号登录服务器,根据项目成员的情况,为每一位成员建立系统账号,账号所在的组为users。这里假设项目成员账号为zhangsan。

# useradd -m -g users -r zhangsan // 新建账号,账号名为zhangsan,所在组为users

# passwd zhangsan // 为新建的账号设置初始密码

# 输入两次密码完成系统账号创建。

2) 按照以上的方法,为项目组其他成员建立系统账号。

管理员建立空仓库

管理员需要首先为项目组建立一个空的仓库,如有遗留代码,还需要在建立仓库后,导入遗留代码。

# cd /

# mkdir git // 在根目录下创建git目录,以后所有的工程目录都会放到git目录下

# cd git

# mkdir project // 新工程目录,名称可以根据项目情况自定义

# cd project

# git init –bare // 创建一个空的仓库

# chgrp -R users /git/project // 这里设置仓库的所属组为users,这个组和上面新建账号时所用的组一致

# chmod –R 775 /git/project // 设置仓库权限:所有者和所属组可读可写,其他组仅可读

项目成员zhangsan开始在Linux上工作

1) 项目组成员zhangsan开始在他的Linux电脑上开展工作了。

2)使用系统账号zhangsan进行远程Shell登录。

3) 设置初始账号和邮箱

# git config –global “user.email zhangsan@yourcompany.com”

# git config –global user.name “zhangsan”

4) 克隆远程仓库

# git clone zhangsan@192.168.30.26:/git/project

# 输入密码完成克隆

# 系统可能提示克隆的是一个空仓库,这个是正常现象。

5) # cd project

6) 在工程目录project中添加/删除/修改文件。

7) # git add XXX // 将新建的文件添加到本地仓库副本

8) # git commit -a -m “Comment here” // 提交修改到本地仓库副本

9) # git push origin master // 推动修改到远程仓库(也就是我们的服务器),注意这里别忘了指定分支master

10) 至此,提交修改到服务器完成。

11) 若希望从服务器获取最新版本,可以使用pull指令。

# git pull

项目成员zhangsan开始在Windows上工作

1) 安装Git for Windows版本(Git-2.17.1.2-64-bit.exe)。

2) 安装TortoiseGit 64位版本(TortoiseGit-2.6.0.0-64bit.msi)。

3) 在资源管理器任意目录空白处点击右键,在弹出的上下文菜单中选择Git Clone菜单项。

4) 输入远程仓库地址,注意这里的地址需要添加ssh前缀指明通信协议。

1390dcf50061?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

5) 输入密码完成克隆。

6) 在工程目录project中添加/删除/修改文件。

7) 在工程目录下点击”Git Commit -> “master”菜单。

1390dcf50061?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

8) 输入密码完成提交。

总结

1) 本文描述了使用git建立仓库及多用户协作的工作场景。

2) 在提交和更新版本时,每次都需要输入账号密码。可以参考网上的资料配置SSH KEY登录模式,这样就不需要每次都输入密码了。

2018-07-13 修订以下内容

今天在提交代码的时候,发现Git提示提交失败,失败原因为没有权限。

这是因为,每次代码提交的时候,Git仓库里的Objects目录会新增存储变更的文件夹,这个文件夹的默认权限是drwxr-xr-x,所以,其他Git用户就不具备写入的权限。

解决方法是:在Git的config文件中,新增如下配置:

sharedRepository = 1

新增这个配置之后,Git通过setgid bit更改这个目录属性(chmod g+s)。

这样,新增的文件夹的权限就会变为:drwxrwsr-x。这里的s权限表示:该目录下创建的文件继承该目录的组属性,也即这里的user组权限,这样,只要账户属于user组,就可以提交文件到仓库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值