我克隆了一个git repo。现在,在远程回购中有一个新分支,该分支是在我克隆到本地后创建的。如何获取这个新的远程分支到我的本地仓库?
答案 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 switch
说git status
),每个 new 提交将自动成为该分支的尖端提交,因为Git会写入新提交的哈希ID进行新提交时,将其添加到分支名称中。
因此,当您选择创建新分支时,可以使用任何现有提交的哈希ID进行操作。通常要根据您现有的on branch branch
远程跟踪名称创建自己的新分支feature/tall
。因此,origin/feature/tall
和git 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
documentation和the git config
documentation,以了解它们的含义,但请注意,有许多 lot 选项和配置旋钮:很容易迷失所有这些设置。)