Git远程私库就是把自己的Linux下的Git仓库作为服务端,客户端通过Git和其建立连接。远程私库可以用于部署项目或者团队协同开发。本人主要介绍Git安装和配置过程。本人涉及的Linux系统版本是Ubantu18.04和Centos6.5。
搭建远程私库前确保远程服务器可以通过ssh连接成功,命令格式:ssh 用户名@ip地址。连接成功如下所示:
Git安装
通过包管理工具安装
Ubuntu18.04环境下
1 2 3 4 5 6
| apt-get update -y
apt install git
git version
|
Centors6.5环境下
1 2 3 4
| yum install -y git
git version
|
通过安装包安装
安装前准备
1
| yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc
|
下载安装包
https://github.com/git/git/releases
解压
1
| tar zxvf git-2.25.0.tar.gz
|
编译安装
1 2 3
| cd git-2.25.0 make prefix=/usr/local/git-2.25.0 all make prefix=/usr/local/git-2.25.0 install
|
查看Git
Git配置
配置环境变量(安装包安装时)
编辑配置文件
在里面加入加入export PATH=$PATH:/usr/local/git-2.25.0/bin
生效配置文件
配置Git
设置用户名 密码 邮箱
1 2 3 4 5
| git config --global user.name "Your Name" git config --global user.password "Your Password " git config --global user.email "email@example.com"
git config --list
|
配置ssh公钥
1
| ssh-keygen -t rsa //按三下回车键 系统会提示密钥的保存位置(一般是~/.ssh目录)
|
创建仓库
创建仓库文件
1
| mkdir -p /usr/local/gitspace
|
初始化仓库
1 2
| cd gitspace git init --bare
|
创建Linux用户(可选)
1 2 3
| useradd -m liquanhong //Ubuntu中需要加-m参数,不然不会在home中创建文件夹 passwd liquanhong //设置用户密码 chown -R liquanhong:liquanhong /usr/local/gitspace //给仓库分配所属组
|
ssh免密登录
方法1:把本地的Git公钥文件id_rsa.pub,复制到~/.ssh文件夹并改为 authorized_keys
方法2:新建 authorized_keys文件,内容改为本地的Git公钥文件id_rsa.pub的内容
设置成功后客户端不需要输入密码也可以进行拉取、提交代码等操作。
~相当于/home/liquanhong
配置hooks
编辑post-receive
1
| vim /usr/local/gitspace/hooks/post-receive
|
如果没有该文件,创建一个。文件内容如下:
1
| git --work-tree=/usr/local/blog --git-dir=/usr/local/gitspace checkout -f
|
其中/usr/local/blog是提交代码后Git自动生成文件夹目录
赋予权限
1 2
| chown -R liquanhong:liquanhong /usr/local/blog chmod +x /usr/local/gitspace/hooks/post-receive//这个很关键必须执行
|
hooks配置成功后,客户端每次提交代码git会自动在/usr/local/blog目录更新提交的代码文件
如果用root作为Git用户,所有chown命令不需要执行。
客户端操作
本地克隆仓库
远程私库格式:git clone linux用户名@ip地址:仓库路径
例子:git clone liquanhong@106.12.8.172:/usr/local/gitspace
仓库能克隆到本地说明远程私库没问题,正常用git commit,git push等命令就能愉快玩耍了!