将另一个分支从远程拉到本地

pull another branch from remote to local

我想拉一个存在于远程存储库上的分支 branch_1。 结果:我的本地存储库中有 branch_1 跟踪远程存储库中的相同 branch_1

这个任务很简单,你可以google它

git checkout -b branch_1 --track origin/branch_1

通常你只有一个遥控器。按照惯例,它通常被称为 origin。那么我们先来看那个案例:

你的本地仓库必须知道远程分支。它可能已经存在,但您可以使用

来确定
git fetch

如果您执行 git branch -a,您现在应该会看到类似

的内容
origin/branch_1

那么简单

git checkout branch_1

这会发现您没有同名的本地分支,并且只有一个同名的远程分支,因此它将创建本地分支并自动设置跟踪。

如果遥控器名称不同,步骤相同;上面 branch -a 命令的输出会有些不同,因为您要查找的是远程引用名称。 (也就是说,上面的输出origin/branch_1是由远程名称origin和分支名称branch_1组成的。)

但是如果您有多个遥控器怎么办?例如,您可能有一个 origin 和一个 upstream 远程,origin 是从中分叉出来的。在这种情况下,两个遥控器可能具有同一分支的不同版本。

$ git branch -a
master
origin/master
origin/branch_1
upstream/branch_1

那样的话,git直接说git checkout branch_1就不知道怎么办了,所以需要你说得更明确一些。这是你必须使用

的时候
git checkout -b branch_1 --track origin/branch_1

(假设您想要在本地跟踪您的来源版本;您 可以 --track upstream/branch_1,然后您会看到项目的状态你的起源是从那里分叉出来的。)

最后,请注意 pull 在 git 中有特定含义,您使用它的方式并不正确。这可能看起来有点挑剔,但 git 中发生的事情已经够多了,这种事情确实会影响您与其他 git 用户交流的能力。

pull一组更改是将这些更改合并到当前本地分支中(通常通过合并或快进)。这最常用于将更改从相应的远程分支拉入本地分支(“拉分支”);但这与您想从远程分支的当前状态创建本地分支的情况有点不同。