如何使用apt安装最新版本的Git?

我读到了Git的一个安全漏洞,这个漏洞在2.2.1版本中得到了修复。我目前在我的系统(Ubuntu 14.10)上有Git 2.1.0,并尝试使用apt重新安装它。然而,apt告诉我我已经有了最新版本。

Git网站没有Linux的预构建版本。他们说你可以用包管理器来安装它。如果不从源代码构建,我该如何安装最新版本的Git?


2我不会太担心。"Git 2.2.1于2014年12月18日下午发布,以修复Git客户端中的关键安全漏洞。幸运的是,该漏洞并不影响Unix/Linux用户,而是影响OS X和Windows用户。" 来源:http://www.phoronix.com/scan.php?page=news_item&px=MTg2ODA - Elder Geek
1这个问题不是特定于Ubuntu的,而且在Unix&Linux上已经在三年前被提问过了 - 如何使用apt-get更新到Git的新版本? - Dan Dascalescu
https://itsfoss.com/install-git-ubuntu/ - martinho
4个回答

使用Ubuntu上的git维护者提供的PPA
sudo apt-add-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

如果你不知道什么是PPA,首先阅读什么是PPA以及如何使用它们?
如果你收到关于add-apt-repository命令未找到的错误提示,你需要安装software-properties-common,然后重新执行上述步骤。
sudo apt-get install software-properties-common

2.9.0是我刚刚通过这个PPA安装的版本,如果有人想知道的话... - Aaron Hall
1太酷了,现在我可以在2.9上执行git pull --rebase --autostash啦 :) - Oscar Mederos
我使用了"apt-add-repository",但它没有起作用。我改用了"add-apt-repository"。我怀疑是不是打错了字? - user1914692
@user1914692 你有看到这个帖子中的三个命令都使用了sudo吗? - muru
我的意思是,“apt-add-repository” 和 “add-apt-repository” 的区别。 - user1914692
@user1914692,这两个命令在所有当前版本的Ubuntu中都存在,并且是相同的。你的系统可能出了一些问题。 - muru
@muru,好的,谢谢你的信息。不过无论如何,还是要感谢你的帖子,让我现在正在使用最新版本的git! - user1914692
1为了更好地解释给后来的观众,muru是正确的,两个命令都应该有效。第一次我使用“apt-add-repository”时,它报错“无法添加PPA:'ppa:git-core/ppa'。”实际上,由于终端没有抱怨找不到命令,我不应该怀疑命令的有效性。muru的回复提醒我再次测试该命令。第二次我尝试“apt-add-repository”时,它成功了!两个命令都有效!因此,我想第一次使用该命令失败可能与互联网相关。 - user1914692
1@JeffPuckettII 看起来是这样的。Git 2.10.1(10月3日)现在已经可用。 - MEMark
对于运行Trusty LTS(14.04)的用户,您可能需要运行sudo apt-get install software-properties-common以便访问apt-add-repository - cori
@cori 默认情况下,它已经安装在桌面版中。但可能不会出现在服务器或最小安装版本中。 - muru
在Ubuntu 16.04上,apt-add-repository被符号链接到add-apt-repository - Asclepius
@dragon788 add-apt-repositoryapt-add-repository相同的命令。 - muru
@muru 您是正确的,它们是相同的命令,我认为在某个时候apt-add-repository是“真实”的二进制文件,但现在它只是一个符号链接到add-apt-repository,而我个人更喜欢指向实际的二进制文件而不是符号链接,因为取决于系统的设置,符号链接可能无法按预期工作。 - dragon788
@dragon788 这是迷信,我要求你不要在我的帖子中提及这种无稽之谈,尤其是当你说这是一个“错误”的命令时。 - muru
@muru,有没有一个地方可以下载已编译的Git二进制文件,然后只需解压缩即可?无需安装或编译。就像下载其他二进制TAR文件一样。 - Royi

这是我在Ubuntu 12.04上将git 1.7.9.5升级到2.xxx的步骤:
sudo apt-get install python-software-properties
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt-get update
sudo apt-get install git -y
git --version

1sudo apt-get upgrade 可能会影响到更多的内容,而不仅仅是 git,这取决于 PPA 的内容。我建议除非你知道你想要 PPA 中比 install git 引入的依赖项更新的任何软件包,否则最好跳过这一步骤。 - dragon788
我在回答中删除了全局 apt 升级部分。 - Duncan Lock

最常见的情况是当你想要安装最新版本的git时,但你的操作系统仓库没有更新。例如,在我的情况下,我有一台运行Ubuntu 20.04的笔记本电脑,当我执行命令sudo apt install git时,安装的版本是2.25.1,而不是当前版本2.32.0,当前版本可以在git-scm.com上找到。
如何获取最新版本呢?
嗯,我们可以通过以下方法之一来安装它:使用APT仓库、构建和安装,或者使用二进制文件。
A. 构建和安装(推荐给开发者)
A-1. 使用以下命令卸载Ubuntu软件包管理器提供的默认版本和配置:
```bash sudo apt remove git ```
A-2. 安装构建所需的依赖项:
```bash sudo apt install build-essential libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext cmake gcc ```
A-3. 下载并解压最新版本的git源代码:
```bash wget https://www.kernel.org/pub/software/scm/git/git-2.32.0.tar.gz tar -xf git-2.32.0.tar.gz cd git-2.32.0 ```
A-4. 编译和安装git:
```bash make prefix=/usr/local all sudo make prefix=/usr/local install ```
A-5. 验证安装是否成功:
```bash git --version ```
如果显示了正确的版本号,那么恭喜你,你已成功安装了最新版本的git!
请注意,这种方法适用于开发者和高级用户。如果你只是普通用户,建议使用APT仓库或二进制文件来安装git。
sudo apt remove --purge --auto-remove -y git

或者:

sudo apt purge --auto-remove -y git

A-2. 前往官方CMake网页,然后下载并解压最新版本。更新以下命令中的versionbuild变量以获取所需版本:
version=2.32
build=0
mkdir ~/temp
cd ~/temp
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-$version.$build.tar.gz
tar -xzvf git-$version.$build.tar.gz
cd git-$version.$build/

A-3. 运行以下命令安装提取的源代码:

make -j$(nproc) prefix=/usr/local all
sudo make prefix=/usr/local install

A-4.测试你的新git版本。

git --version

git --version的结果:

git version 2.25.X

B. 使用PPA存储库(推荐给普通用户)

有一个来自Ubuntu Git Maintainers team的PPA可用,我们可以使用它来轻松安装最新稳定版的Git。因此,我们可以按照以下步骤轻松安装:

B-1. 卸载Ubuntu软件包管理器提供的默认版本,如A-1中所述。

B-2. 将PPA存储库添加到您的源列表中。

sudo add-apt-repository ppa:git-core/ppa

最后,我们可以更新并安装git软件包。
sudo apt update
sudo apt install git

B-4.A-4那样测试您的新git版本。

注意事项

2.32.X中,X代表我们定义为构建的版本的最后一部分。如果更新了git,构建可能会发生变化。根据官方网页,最新发布版本为2.32.0。如果您想要上一个版本2.31.1,只需替换版本和构建参数,如下所示:

version=2.31
build=1
mkdir ~/temp
cd ~/temp
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-git-$version.$build.tar.gz
tar -xzvf git-$version.$build.tar.gz
cd git-$version.$build/

安装特定版本

如果您想安装PPA的特定版本,而不一定是最新版本(我建议这样做以确保未来的可重复性),您可以使用以下方法:

sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git=1:2.36.0-0ppa1~ubuntu20.04.1

这将在Ubuntu 20.04上安装git 2.36。
巨大的版本字符串1:2.36.0-0ppa1~ubuntu20.04.1直接从PPA页面复制粘贴而来:https://launchpad.net/~git-core/+archive/ubuntu/ppa 有关版本字符串的更多信息,请参阅:为什么某些软件包在版本字符串前面有额外的数字和冒号?