搭建git服务器

初始化远程仓库:

adduser -s /usr/bin/git-shell -d /home/git -m git 
# 创建git用户。centos下adduser是useradd的软连接文件。 
# -m 同时创建家目录/home/git。
# -s 指定用户shell。git-shell类似一个沙盒环境,只能执行git相关指令,这样git用户就不能进行登录或用scp传文件等其他操作了。

passwd git  # 设密码,若不设置需要在/home/git/.ssh/authorized_keys加入公钥,但是不能用输入密码的方式提交。因为不设置密码的用户默认是锁定的。

mkdir -p /home/git/repo && cd /home/git/repo 

git init --bare sample.git  # 创建裸仓库(一个目录),裸仓库没有工作区,因为服务器上的仓库纯粹是为了共享,不能够直接操作。
# 服务器上的Git仓库通常以.git结尾。

chown -R git:git /home/git # 修改权限,git要求git用户要有进入并执行读写资源库(目录)的权限

客户端就可以在本地克隆仓库了:

git clone git@server:repo/sample.git # 基于ssh,这句话的含义是用git用户获取server服务器下/home/git/repo/sample.git目录下的仓库

要方便管理公钥,用Gitosis
要像SVN那样控制权限,用Gitolite

posted @ 2018-12-10 10:00  xuejianbest  阅读(85)  评论(0编辑  收藏  举报