git fetch 未在 Red Hat Enterprise Linux Server 7.7 (Maipo) 上的全新克隆上获取远程分支

问题描述

在 RedHat 服务器 7.7 上

我运行了以下命令。

git clone https://github.com/postgres/postgres.git
cd postgres
git remote add upstream https://github.com/postgres/postgres.git
git fetch upstream REL_12_STABLE

输出如下:

From https://github.com/postgres/postgres
 * branch            REL_12_STABLE -> FETCH_HEAD

代替

From https://github.com/postgres/postgres
* branch REL_12_STABLE -> FETCH_HEAD
* [new branch] REL_12_STABLE -> upstream/REL_12_STABLE

如果我运行 git branch –r 命令,我们不会看到额外的上游/REL_12_STABLE 条目

虽然在 RedHat 8 上一切正常。

解决方法

显然(根据评论)RH7.7 上的 Git 版本很旧,早于 Git 1.8.4。 (谷歌搜索表明它实际上是 1.8.3.1。)当使用这种形式的 upstream/REL_12_STABLE 时,像这样的非常旧的 Git 版本根本无法创建或更新远程跟踪名称,例如 git fetch .

有几种解决方法或变通方法。这是我的前两名:

  • 安装较新的 Git 版本将修复它。 (请注意,自定义 Git 可能与系统 Git 位于不同的目录中。这可能会很混乱,但通常应该可以工作。您可能需要调整 PATH 设置。)
  • 运行 git fetch upstream 而不是 git fetch upstream REL_12_STABLE 可以解决这个问题,尽管这样做的缺点是获取所有内容而不仅仅是一个分支。