一、安装

本篇不会特别指出任何使用包管理器安装 Git 的方法,如果你对包管理器不了解或者说不知道自己的系统的包管理器如何使用,我强烈建议你移步我的另一篇文章:Linux 环境一般软件安装方法,该篇文章详细说明了使用包管理器安装软件的一般方法,以后也就不用每次安装软件时都上网搜索了!

  1. 下载源码

    你可以在 https://git-scm.com/downloads 看到官网上所标注的最新的源代码版本,然后通过 https://mirrors.edge.kernel.org/pub/software/scm/git/ 找到对应的版本下载即可。我所下载的文件是:git-2.42.0.tar.gz

    1
    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.42.0.tar.gz

    注意

    1. 可以在任何目录使用该命令,但如果是一些访问受限的系统目录下,需要登录root用户执行或在命令前加上sudo,后续命令同理
    2. 关于wget工具的用法可以通过wget --help进行查看,此处不详细介绍
  2. 解压压缩包

    我们下载下来的文件是一个.tar.gz的压缩包,需要用tar工具进行解压,如果没有该工具,则通过包管理器下载即可,包名称就叫tar。以下是解压命令

    1
    tar -zxvf git-2.42.0.tar.gz

    注意

    1. 关于tar工具的用法可以通过tar --help进行查看,此处不详细介绍

    2. 解压出来的目录名应该是git-2.42.0,考虑到本教程的通用性,我选择将其重命名为git

      1
      mv git-2.42.0 git

      后续也请读者以git为准

  3. 依赖安装

    Git 的依赖库包含:autotoolscurlzlibopensslexpatlibiconv。它们的包名分别是:dh-autoreconfcurl-develexpat-develgettext-developenssl-develperl-develzlib-devel,请使用包管理器自行安装以上依赖库,本篇不提供包管理器的使用方法。

    注意

    使用 RHEL 和 RHEL 衍生版,如 CentOS 和 Scientific Linux 的用户可能需要开启 EPEL 库

  4. 编译安装

    依次执行以下命令:

    1
    2
    3
    4
    5
    6
    cd git				# 进入之前解压出来的 git 源代码目录下
    make configure # 生成配置文件
    mkdir /opt/git # 在 /opt 下创建一个新目录用于安装 git
    ./configure --prefix=/opt/git # 修改配置中的安装位置到 /opt/git
    make # 编译
    make install # 安装
  5. 将 git 安装路径添加到环境变量

    1
    2
    echo "export PATH=$PATH:/opt/git/bin" >> /etc/profile
    source /etc/profile
  6. 测试 git

    1
    git --version

二、配置

1. 配置 SSH 连接

如果你使用 git 是为了能够往远程仓库推送内容,我推荐你配置一下 SSH 连接。而如果仅仅是为了克隆仓库到本地而不进行任何推送,则完全可以不配置 SSH 连接。

首先 ssh 和 git 是两个完全分离的工具,不要将它们混到一起。ssh 是 git 支持的一种传输方式,要启用这种传输,首先需要配置 ssh 密钥,从而将本地机器和远程 Github 服务器连接起来。

  • 创建 SSH Key

    1
    ssh-keygen -t rsa -C "<your name>"

    如果以前创建过这个密钥,则可以跳过这一步,通常在~/.ssh/目录下就可以找到以前创建的密钥文件。

    输入该命令之后会有一些输出,也会让你输入一些内容,比如创建密钥的位置,使用密钥的密码等等,通常保持默认即可,即一路回车。

    创建成功后你可以看到如下输出:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Your identification has been saved in /home/Username/.ssh/id_rsa.
    Your public key has been saved in /home/Username/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:RwvBINgH8CEt2KniltmykeyDsOseUYcwMzehFeyT86s emailnum@email.com
    The key's randomart image is:
    +---[RSA 2048]----+
    | o+%OO+o. |
    |..=+%*+ .. |
    | ..+o+o.. . |
    |o. o=. o . |
    |o oolalala S o |
    | +.+.. . . |
    |. .o . |
    | . . . |
    | . E. |
    +----[SHA256]-----+
  • 复制公钥

    如果按照默认配置,则你的公钥文件id_rsa.pub应该放在~/.ssh/目录下,使用任何编辑器如 vim、gedit 打开该文件都可以,然后复制其中内容

  • 配置 Github SSH 密钥

    进入自己的 Github 主页,依次点击【Setting】->【SSH and GPG Keys】->【New SSH Key】按钮,Title 任意内容皆可,通常我比较喜欢和自己在创建 ssh 密钥时填写的名字一样。

    然后将刚刚复制的密钥内容粘贴到下方文本框中,保存即可。

  • 测试 ssh 连接

    1
    ssh -T git@github.com

    第一次使用该密钥连接时会询问是否继续连接,输入yes回车确认即可,最后如果看到如下输出则说明配置成功了:

    1
    Hi You! You've successfully authenticated, but GitHub does not provide shell access.

2. 其他配置

1
2
3
git config --global user.name "<你的用户名>"
git config --global user.email "<你的邮箱>"
git config --global core.quotepath false # 解决中文路径显示乱码的问题