接下来我们将以 Centos 为例搭建 Git 服务器。
1、安装Git
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install git
接下来我们 使用root账户创建一个git用户组和用户,用来运行git服务:
$ groupadd git
$ adduser git -g git
2、创建证书登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub(请参考Git SSH Key 生成步骤)文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
如果没有该文件创建它:(注意先使用su git 切换到git用户)
$ su git
$ cd /home/git/
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
3、初始化Git仓库
首先我们选定一个目录作为Git仓库,假定是/home/git/test.git,在/home/git目录下输入命令(也是在git用户的权限下进行):
$ cd /home/git
$ git init --bare test.git
Initialized empty Git repository in /home/git/test.git/
这个时候git仓库就建好了!
补充:想要把自己的应用目录关联到该仓库下,假设我的应用目录是/Data/webapps/test
注意:post-receive文件需要有可执行权限,钩子才会起作用
vi /home/git/test.git/hooks/post-receive
添加上
#!/bin/sh
#GIT_WORK_TREE=/Data/webapps/test git checkout prod -f
git --work-tree=/Data/webapps/test --git-dir=/home/git/test.git checkout -f development
4.windows客户端clone代码
参考Git本地仓库(Repository)详解里面git的安装和Git SSH Key 生成步骤里面具体如何clone
5.git clone后,添加文件,然后提交文件,再push后,/Data/webapps/test/ 下面就有对应的新文件了
比如在目录下创建了一个test.txt文件,然后在git bash 终端里依次执行以下代码:
git add test.txt
git commit test.txt -m 'commit'
git push origin master
这个时候,服务器/Data/webapps/test/目录下就有test.txt文件了!
注意:如果提示permission denied,可以尝试设置 如下:chmod -R 777 /Data/webapps/test/