如何从远程获取特定的功能分支?

3

我已经换了一台新机器。

我已经按照以下方式在我的新机器上设置好了自己;

git clone -b develop git@github.com:example/example.git example

那给了我;

develop
master

在我的旧机器上,我创建了功能分支并将其推送到仓库中。
在旧机器上,git branch 的输出如下:

develop
feature/ecommerce-one
feature/ecommerce-two
feature/ecommerce-three
master

我该如何将这些特性分支放到我的新机器上?
无论一次全部还是逐个,我都可以接受。

我尝试过 git clone https://github.com/example/example.git --branch feature/ecommerce-one --single-branch,但是它在当前目录内,所以它只是在该目录下重新创建了整个项目。


git clone 已经复制了来自 origin 的所有分支。如果在您的新机器上运行 git branch --remote 没有列出功能分支,则它们不存在于 origin 存储库中,您可能从旧机器上没有将它们推送到 origin。 - bames53
git branch --remote 不错的技巧。 - mikelovelyuk
3个回答

1

确认一下,你是否已经将旧机器上的分支推送到远程仓库了?你可以通过调用 git branch --remote 命令来检查,并先验证所有分支是否都在那里。

如果没有,请按照以下方式将它们推送到远程仓库:

git push origin <localBranchName>:<desiredRemoteBranchName>

一旦它们被上传,你就可以在新的机器上轻松获取它们。


是的,我在我的旧电脑上经常进行推送。它们现在都在GitHub上。 - mikelovelyuk

1

如何将这些功能分支传输到我的新机器上?

您需要将分支推送到源以便在另一台机器上获取它们。

git push origin <b1>
git push origin <b2>

...

一旦你的所有分支都在远程,你可以在新机器上执行fetch操作:

// The fetch will update your local repository metadata with the content of
// the remote repository so you will be able to checkout your branch as 
// local branch 
git fetch --all --prune

//git checkout <b1>

enter image description here


Git基本工作流程

enter image description here


我已经在我的新电脑上尝试过 git checkout origin <分支名称>,但没有成功。我并没有期望 git checkout <分支名称> 能够直接奏效,但它确实做到了。现在想想,这似乎有点合理。 - mikelovelyuk
但是你必须首先将你的分支推送到远程仓库。 - CodeWizard

1
在从Github克隆后,您的origin被设置为Github存储库。因此,您运行git fetch origin,然后Github存储库上的所有分支现在也在您的新机器上,但是在origin/命名空间下。
要将它们复制为本地(正常)分支,请对所有这些分支运行git checkout -b mybranch origin/mybranch
如果您不记得分支名称,请运行git branch -r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接