CentOS7 安装 Git

Git logo

Git简介

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git安装

Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

安装依赖库和编译工具

为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具

1
2
[root@localhost ~]# yum install curl-devel expat-devel\
gettext-devel openssl-devel zlib-devel

安装编译工具

1
[root@localhost ~]# yum install -y  gcc perl-ExtUtils-MakeMaker

下载 git

选一个目录,用来放下载下来的安装包,这里将安装包放在 /opt 目录里

1
[root@localhost ~]# cd /opt/

到官网找一个新版稳定的源码包下载到 /usr/local/src 文件夹里

1
[root@localhost opt]# wget https://www.kernel.org/pub/software/scm/git/git-2.10.0.tar.gz

解压和编译

解压下载的源码包

1
[root@localhost opt]# tar -xvf git-2.10.0.tar.gz

解压后进入 git-2.10.0 文件夹

1
[root@localhost opt]# cd git-2.10.0

执行编译

1
[root@localhost git-2.10.0]# make all prefix=/usr/local/git

编译完成后, 安装到 /usr/local/git 目录下

1
[root@localhost git-2.10.0]# make install prefix=/usr/local/git

Git配置

将 git 目录加入 PATH

将原来的 PATH 指向目录修改为现在的目录

1
[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/profile

生效环境变量

1
[root@localhost ~]# source /etc/profile

此时我们能查看 git 版本号,说明我们已经安装成功了。

1
2
[root@localhost ~]# git --version
git version 1.8.3.1

创建 git 账号密码

创建 git 账号

为我们刚刚搭建好的 git 创建一个账号

1
[root@localhost ~]# useradd -m git      #自动建立用户的登入目录。

然后为这个账号设置密码

1
[root@localhost ~]# passwd git

在控制台输入创建密码后,输入您自定义的密码,并二次确认。

初始化仓库和配置权限

创建 git 仓库并初始化

我们创建 /data/repo 目录用于存放 git 仓库

1
[root@localhost ~]# mkdir -p /data/repo

创建好后,初始化这个仓库

1
2
[root@localhost ~]# cd /data/repo/ && git init --bare test.git           
初始化空的 Git 版本库于 /data/repo/test.git/

配置用户权限

给 git 仓库目录设置用户和用户组并设置权限

1
[root@localhost repo]# chown -R git:git /data/repo/
1
[root@localhost repo]# chmod 755 .

编辑 /etc/passwd 文件,将最后一行关于 git 的登录 shell 配置改为 git-shell 的目录

1
2
3
[root@localhost ~]# vim /etc/passwd 
# /etc/passwd: 加入以下内容
git:x:500:500::/home/git:/usr/local/git/bin/git-shell

如果按照刚才的步骤执行, 这个位置应该是 /usr/local/git/bin/git-shell, 否则请通过 which git-shell 命令查看位置

安全目的, 限制 git 账号的 ssh 连接只能是登录 git-shell

使用搭建好的Git服务

克隆 test repo 到本地

1
2
➜  Desktop git clone git@192.168.1.10:/data/repo/test.git
fatal: destination path 'test' already exists and is not an empty directory.

Done.