6

我想从源上的开发分支创建一个名为 test 的本地和远程分支。但是,即使我当前的本地分支在我签出新分支时正在跟踪 origin/develop,但它需要 origin/master。因此,我必须按照以下步骤在远程和本地获取测试分支。

git checkout -b test ( By default it picks origin/master though my current branch tracks origin/develop)
git fetch origin
git reset --hard origin/develop 
git push -u origin test 
4

2 回答 2

13

根据文档

git checkout -b test --track origin/develop

应该做的伎俩。


作为额外的好东西,如果你想创建一个本地分支来跟踪一个同名的远程分支,你可以偷懒忽略这个-b选项

git checkout --track origin/develop

将创建并签出一个名为 的本地分支develop,因此相当于

git checkout -b develop --track origin/develop

从文档

为方便起见,不带 -b 的 --track 意味着创建分支。

[...]

如果没有给出 -b 选项,则新分支的名称将从远程跟踪分支派生。

于 2013-06-22T00:00:51.717 回答
1

Git 2.23开始,您还可以使用:

git switch -t origin/<branch>

它创建并签出一个名为<branch>tracking the remote的新本地分支origin/<branch>

有关文档的更多详细信息。

于 2020-03-05T11:39:02.937 回答