搭建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