一、可以使用yum进行安装
1、安装git:yum install git
2、查看yum源仓库Git信息:yum info git
3、安装依赖库:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc-c++ perl-ExtUtils-MakeMaker
4、查看git版本,如果默认安装的版本过低,移除默认安装的git
4.1、查看版本信息:git --version
4.2、移除默认安装的git:yum remove git
二、自行下载安装Git
最新git源码下载地址:
https://github.com/git/git/releases
https://www.kernel.org/pub/software/scm/git/
1、下载
1.1、进入到要下载的目录:cd /opt
1.2、用wegt命令进行下载:wget https://www.kernel.org/pub/software/scm/git/git-2.25.1.tar.gz
1.3、安装依赖我
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
2、解压:此处解压到opt目录下
tar -zxvf soft git-2.25.1.tar.gz
3、安装
3.1、进入解压后的git目录:cd /opt/git-2.25.1
3.2、执行make configure
注意:执行此命令时,开始出错,错误如下:
configure: Setting lib to 'lib' (the default)
configure: Will try -pthread then -lpthread to enable POSIX Threads.
configure: CHECKS for site configuration
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/opt/git-2.19.0':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
解决办法:通过yum providers gcc 和 yum providers cc 查询到c编译器没有安装,可通过执行yum -y install gcc安装gcc包及对应的依赖。
再次执行make configuer,再次出现错误,错误如下:
GIT_VERSION = 2.19.2
GEN configure
bin/sh:autoconf:未找到命令
make:***[configure]错误127
解决办法:通过yum providers autoconf 查询到没有安装autoconf,可通过执行yum -y install autoconf安装包及对应的依赖。
3.3、配置目录:./configure --prefix=/opt/git-2.25.1
3.4、执行 make profix=/opt/git-2.25.1
3.5、执行make install进行安装
4、加入环境变量:echo "export PATH=$PATH:/opt/git-2.25.1/bin" >> /etc/profile
source /etc/profile //使修改的文件生效
5、检查版本:git --version
如果显示:git version 2.25.1 则证明安装成功!
第二部 创建GIT仓库 并发布到网站目录
我的网站目录在 /opt/wwwroot 下
那我们先开始创建一个空的GIT仓库
cd /opt
mkdir -p gitRes/www.git
cd www.git
git init --bare
那我们仓库地址在/gitRes/www.git 这就是我们仓库地址
编写钩子 使我们提交代码后把代码同步到我们网站目录
cd hooks
2.配置 Git Hook
将目录切换至 /home/USER/repos/xxx-bare.git/hooks
,用 cp post-update.sample post-update
复制并重命名文件后 vim post-update
修改,增加执行脚本:
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/sh unset GIT_DIR DIR_ONE=/home/user/www/blog/ #此目录为服务器页面展示目录 cd $DIR_ONE git init git remote add origin ~/repos/xxx-bare.git git clean -df git pull origin master pm2 restart xxx #pm2重启项目即可 |
注意: 一定要unset GIT_DIR清除变量, 不然会引起remote: fatal: Not a git repository: ‘.’错误。
下面我们给予这个钩子可执行权限
chmod +x post-receive
3.本地仓库添加 remote 源
本地仓库添加远程仓库源之后,一旦本地仓库变更提交就会触发 Git 钩子,驱动自动部署
1 2 3 4 | git init git remote add origin user@1.2.3.4:/home/USER/repos/xxx-bare.git #添加远程仓库源 //例如git remote add origin ssh://root@41.72.11.11:26244/home/USER/repos/xxx-bare.git #远程仓库带端口写法 git push origin master |
好了下面回到我们电脑端检出提交下代码试试吧
检出地址为
git clone root@ip:/opt/gitRes/www.git
密码为服务器码为服务器root密码,如果想免密码提交,本地用ssh-keygen生成私钥,公钥配置到Git服务器即可,一般是
~/.ssh/authorized_keys
PS: authorized_keys文件的位置在sshd_config中可配置
vim /etc/ssh/sshd_config