首页 > 解决方案 > Git:如何签出新创建的远程分支?

问题描述

Drupal 8 的新次要版本分支每 6 个月创建一次,但默认分支仍然是以前的分支。例如,现在默认分支是8.6.x,最新分支是 8.7.x。

git clone --depth 1 git@git.drupal.org:project/drupal.git

上面的命令克隆了默认分支,即 8.6.x,但我想克隆新创建的远程分支,即 8.7.x

git clone --depth 1 --branch $NEWEST_BRANCH git@git.drupal.org:project/drupal.git

有没有办法动态设置NEWEST_BRANCH新创建的远程分支?

标签: git

解决方案


有没有办法动态设置NEWEST_BRANCH新创建的远程分支?

不在 Git 内部,不——没有“新创建”的概念。此外,虽然有些人可能会使用语义版本控制的某些变体 ,但并不是每个人都这样做(并且首先存在反对该概念的有效论据)。从本质上讲,甚至很难知道“最新”是什么意思

(旁注:“远程分支”这个短语也不是一个很好的词,只是因为 Git 通过使用通常被称为“远程分支”的本地实体来代替更准确的远程跟踪分支名称来混淆水域,或我喜欢的短语,远程跟踪名称。在这种情况下,您只是指指定 other-Git-repository的“最新”或“最新” 。)

对于这个特定问题,我可能会建议使用以下任一方法:

  1. 运行git ls-remote,并使用它来选择一个特定的分支。然后您可以使用git clone -b <name> --depth 1.

  2. 运行git clone --depth 1 --no-single-branch:您将获得许多深度为 1 的远程跟踪名称,远程上的每个分支一个。然后,您可以仔细阅读它们以及git checkout您喜欢的任何一个。

方法 1 的劳动强度更大,但我对克隆 8.6.x(此特定测试的实时时间约为 10 秒)与--no-single-branch(实时时间约为 30 秒)进行了计时,因此您可能更喜欢将它用于某种自动化的事情。


推荐阅读