如何在centos 7中设置GIT PATH?

How to set GIT PATH in centos 7?

在我的用例中,我想在 CentOS7 中使用最新版本的 GIT。但是我没有 sudo 访问权限来在框中安装 git。

已安装 git 版本为 1.8.3.1。但我想使用 2.4.11 因为版本 1.8.3 会出现类似

的错误
unrecognized argument: --author-date-order

我下载了最新的 git 并尝试使用它。我可以 运行 它没有上面提到的错误。我直接用like bin/git.

$git.Linux.x86_64/bin/git --version
git version 2.4.11

但是我无法更改所有带有路径的地方的代码。有没有办法设置最新的 git PATH 并在不安装的情况下使用它?

如果能提供任何帮助,我将不胜感激。

Digital Ocean 有一个nice guide on building Git from source on CentOS 7。将生成的二进制文件放在 CentOS 7 系统的 /usr/local/bin/ 中(默认情况下,它包含在您的 $PATH 中),您就可以开始了。

当然,您更喜欢 packages/using 存储库,但是,鉴于您的情况,我会毫不犹豫地自己构建它。

一般信息; Push to Deploy 是在 Git 2.3.0 中引入的。请确保使用此版本或更高版本。

您可以使用 IUS 存储库 (https://ius.io/) as provided on Git official site here: https://git-scm.com/download/linux

为此,运行(作为 root):

yum install epel-release
yum remove git
rpm -U https://centos7.iuscommunity.org/ius-release.rpm
yum install git2u

我相信你运气不好,但也许不是。

当某些东西(您的 shell、另一个程序、任何东西)试图调用 Git 时,操作系统会在您的每个文件夹中搜索名为 Git 的程序可执行文件路径变量。

因此,如果你想阻止 Git 匹配 root 安装的现有版本,那么你就不走运了,不能从你的 PATH 中删除一些非常重要的文件夹(不要'不要这样做!)。但是,您可能能够找出 OS 搜索 PATH 变量以查找 Git 可执行文件的顺序,并且您可以在您的 git bin 文件夹前面添加或附加。这样假设 OS 以可预测的方式搜索,它应该在找到系统范围内安装的 Git 之前找到你的 Git。

然后,您可以将您的 .bashrc 更改为在您的用户登录时始终 prepend/append 您的 git bin 文件夹。

这有点 hack-y,可能会导致未定义的行为,但请用户注意。正确的方法是要求您的系统管理员更新 Git 或修复错误以允许您使用它。

EDIT 在 Fedora 上进行快速测试后(鉴于它是 Red Hat 发行版,它的行为应该类似于 CentOS),它似乎从路径(左侧)并在第一场比赛后停止。

编辑 2 我还想提醒您:这仅适用于从您的用户环境中调用 Git。如果您 运行 作为不同的用户,或者没有相同的 $PATH 变量的东西,那么将 git 在系统范围内安装不同的版本。再次提醒用户注意。