克隆后创建远程分支后,如何在本地签出到远程分支

时间:2020-09-23 12:16:12

标签: git

我克隆了一个git repo。现在,在远程回购中有一个新分支,该分支是在我克隆到本地后创建的。如何获取这个新的远程分支到我的本地仓库?

2 个答案:

答案 0 :(得分:2)

您可以使用git fetch来获取您感兴趣的远程分支。 例如,如果您想从远程source获取一个名为origin的分支,并设置一个本地分支dest来跟踪该远程分支,则可以执行以下操作:

git fetch -u origin source:dest

答案 1 :(得分:1)

请注意,git fetch从其他Git的分支名称中创建远程跟踪名称。也就是说,如果名为origin的远程服务器具有一个以前没有的名为feature/tall的新分支,然后运行:

git fetch origin

之后,您将使用新的远程跟踪名称origin/feature/tall

如果愿意,您可以签出此远程跟踪名称指向的特定提交:

git checkout origin/feature/tall

但是这会将您自己的Git放入Git所谓的分离式HEAD 模式。这对于查看提交甚至建立一个提交都是很有用的,但它并不是进行任何实际工作并进行新提交的好方法。

要在自己的存储库中创建新的分支名称,请使用两个或三个主要的Git命令(如果使用的是Git 2.23或更高版本,则为三个):

  • git branch是用于处理分支名称,列出分支名称,列出远程跟踪名称等的通用命令。

  • git checkout具有-b选项,用于创建新的(本地)分支名称。 1

  • git switch具有-c选项,用于创建新的分支名称。

请记住,分支名称标识一个特定的提交(Git将该分支称为该分支的 tip提交),并提供了一些额外的功能,例如使用{{1} }或git checkout表示该分支上的。一旦您进入分支(即git switchgit status),每个 new 提交将自动成为该分支的尖端提交,因为Git会写入新提交的哈希ID进行新提交时,将其添加到分支名称中。

因此,当您选择创建新分支时,可以使用任何现有提交的哈希ID进行操作。通常要根据您现有的on branch branch远程跟踪名称创建自己的新分支feature/tall。因此,origin/feature/tallgit checkout都将在适当的时候自动

也就是说,如果您有一个git switch远程跟踪名称,但还没有却有一个origin/feature/tall 分支名称,并且您运行feature/tall,而不是给您一个错误消息以表明git checkout feature/tall不存在,feature/tall会对自己说: Hm,git checkout不存在,但feature/tall可以。我敢打赌,我的用户希望创建origin/feature/tall,以便它标识与feature/tall相同的提交!因此,origin/feature/tall做到了,然后创建了分支名称, git checkout可以签出该新分支。

如果由于某种原因而失败,您可以随时明确地这样做:

git checkout

例如。 (可以通过git checkout -b feature/tall origin/feature/tall 配置分支名称来掩盖的许多较小的项目:例如,自动上游设置。遵循自动创建分支的git config的变体,服从请仔细阅读the git branch documentationthe git config documentation,以了解它们的含义,但请注意,有许多 lot 选项和配置旋钮:很容易迷失所有这些设置。)