在一个多人协作开发的项目中,大家共同使用同一个测试服务器,为了避免代码提交时的发生冲突,这时使用 git 进行代码管理再合适不过了,今天就跟大家讲一下如何在 centos 上面进行 git 服务器的搭建。
安装 git
yum install git
默认情况下,linux 系统自带 git 工具,不需要特别安装。
创建一个git用户,用来运行git服务
sudo adduser git -d /home/git -s /usr/bin/git-shell -G git
说明:
添加一个用户名为 git 的用户,指定该用户的家目录为 /home/git ,禁止该用户通过 shell 登录,将该用户划分到组 git 下面。
创建证书登录
mkdir /home/git/.ssh && chmod 700 /home/git/.ssh touch 700 /home/git/.ssh/authorized_keys chmod 600 /home/git/.ssh/authorized_keys
说明:
在刚才创建的 git 用户的家目录下创建 ssh 授权公钥存放文件,该文件存放每个 git 客户端的 ssh 公钥,即 id_rsa.pub 文件中的内容,一行一个。
初始化 git 仓库
cd /home/git/ git init --bare test.git
说明:
在 git 用户家目录下面创建一个 test.git 仓库
在客户端进行连接该仓库
在客户端连接远程仓库的前台是该客户端的公钥(即 id_ras.pub 文件里面的内容)已经添加到服务器
/home/git/.ssh/authorized_keys 文件中。
git clone git@vmhost:/home/git/test.git
其中 vmhost 是你的服务器 IP
创建一个新文件 test.txt
cd test && touch test.txt
查看状态并提交
git status git add . git commit -m "create test.txt" git push origin master
提示
clone 远程仓库时一直要求输入密码,请检查客户端公钥是否已正确添加到服务端
/home/git/.ssh/authorized_keys 文件中。
git 可以拉取,但推送更新时报错,请检查 git 用户对远程仓库所在的路径是否有写的权限。
cd /home/git && chmod -R 777 test.git
这时候再进行推送就可以成功推送上去了。