▪ 环境
操作系统:CentOS 7.4(阿里云,最小化安装)
▪ 前言
CentOS 自带 Git,CentOS 7.x 版本自带 Git 的 1.8.x 版本,目前官方最新版本已经到了 2.13.x。自带的实在是太老旧了,想要安装最新版本的的 Git,只能下载源码进行安装。
1. 安装
1. 查看 yum 源仓库的 Git 信息
在 CentOS 命令模式下输入:
$ yum info git
我们可以找到 CentOS 自带的 Git 版本为 Version : 1.8.3.1
,而查看 Git官网 我们可以找到最新版,截稿时其最新版为 2.13.1
2. 安装 Git 依赖库
通过 rpm -qa | grep name
的方式验证以下软件包是否已全部安装。
gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
如果缺少相关的软件包,可通过 yum -y install
的方式在线安装,或直接从系统安装光盘中找到并通过 rpm -ivh
的方式安装。
3. 卸载自带的低版本 Git
$ yum remove git
4. 下载新版的 Git 源码包
$ cd /usr/local/src/
$ wget https://github.com/git/git/archive/v2.13.1.tar.gz -O git-2.13.1.tar.gz
5. 安装 Git
$ tar -xzvf git-2.13.1.tar.gz
$ cd git-2.13.1
$ make prefix=/usr/local/git all
$ make prefix=/usr/local/git install
分别执行以上命令进行编译安装,编译过程可能比较漫长,请耐心等待完成。
6. 增加 Git 到系统环境变量中
增加到系统环境变量后我们就可以直接输入 git
执行,而不需要指定其具体路径:
// 方式一
$ ln -s /usr/local/git/bin/* /usr/bin/
// 方式二
$ echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
$ source /etc/bashrc
个人觉得 方式一 比较好
7. 查看版本号
// 成功输出版本号就表示安装成功了
$ git --version
2. 创建一个 Git 用户组和用户
创建 Git 专用的用户,主要用来运行 Git 服务
// 创建用户
$ groupadd git
$ useradd git -g git
// 创建密码
$ passwd git
3. 禁止 git 用户 Shell 登录
出于安全考虑,git 用户不允许登录 Shell,这可以通过编辑 /etc/passwd
文件完成:
// 找到类似下面的一行的
git:x:503:503::/home/git:/bin/bash
// 然后更改为以下配置并保存退出
git:x:503:503::/home/git:/usr/local/git/bin/git-shell
注意:禁止 git 用户 Shell 登录不能改为
git:x:503:503::/home/git:/sbin/nologin
,否则会提示fatal: protocol error: bad line length character: This
错误
4. 初始化 Git 仓库
$ mkdir /data/git/htdocs -p
$ chown git:git /data/git/htdocs
$ cd /data/git/htdocs
$ git init --bare [Project].git
$ chown git:git [Project].git -R
以上命令会创建一个空仓库,服务器上的 Git 仓库通常都以 .git 结尾
5. 本地克隆仓库
// 执行后会提示输入 git 用户密码
// 输出 `warning: You appear ... repository.` 即表示克隆成功
$ git clone git@[Server IP]:/data/git/htdocs/[Project].git
[Server IP] 表示服务器的 IP
6. 创建证书登录
采用账号密码的形式需要每个程序员都要知道 git 用户的密码,同时每次 git push
和 git pull
等都需要输入密码。处于安全和便捷性考虑,我们可以采用 SSH RSA 证书的方式免去密码输入,操作如下:
6.1 在服务器端创建证书存储目录和文件
$ cd /home/git/
$ mkdir .ssh
$ chmod 700 .ssh
$ chown git:git .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ chown git:git .ssh/authorized_keys
6.2 在本地生成 SSH 证书公私钥
在程序员的本地电脑上安装 Git 客户端,然后生成 SSH 证书公私钥(参见:)
6.3 将本地的公钥备案到服务器
通常生成的私钥文件名为 id_rsa
,公钥文件名为 id_rsa.pub
,我们只用拷贝公钥文件内全部内容:
$ cd ~/.ssh
$ cat id_rsa.pub
然后将其内容写入到服务器的 /home/git/.ssh/authorized_keys
文件内即可免密码进行 git
的操作了。
如果还有给其他程序员电脑开通 Git 权限,只需要将他们公钥继续追加到
/home/git/.ssh/authorized_keys
即可,一行一个。
▪ 参考文档:
Git安装部署:
Git/SSH捋不清的几个问题
CentOS 7下 Git 服务器端搭建和验证:
Git 服务器搭建:http://www.runoob.com/git/git-server.html
Windows下 SSH 连接 Git 服务器:https://www.zybuluo.com/zhutoulwz/note/30495