2015-11-03 56 views
0

将分支转换为分叉副本

我最近分叉了GIT存储库的远程副本,远程版本有3个分支开发,分段,主。

现在我想从远程的临时分支中获得最新信息,因此我试图切换到本地仓库的临时分支以从远程仓库的暂存分支中获取更新。

我用下面的命令切换到分期分支git checkout staging但它抛出一个错误pathspec staging does not match any file(s) known to git,但是当我尝试git checkout origin/staging它不结帐,但分行的名称是一些随机的字符,如1d63d7d

当我试图列出分支机构在我的本地回购的复制,它只是列出发展。

任何人都可以告诉我,我应该如何切换到本地回购中的分期分支。

回答

0

从你描述的那里听起来像目前在本地回购没有升级分支。幸运的是,它很容易地创建一个:

git checkout -b staging --track origin/staging 

这将创建并检查了一个基于origin/staging称为staging新的分支,并将其设置为追踪远程分支origin/staging

您可以在documentation for git checkout中阅读有关-b--track选项的更多信息。

应该指出的是,根据文档,通常git checkout staging应该已经为你自动创建了一个本地分支。出于某种原因,在这种情况下它没有。我不知道为什么,但它听起来像是当它有多个远程分支分支时可能发生的文档。相关报价:

git checkout <branch>

要通过更新索引 和工作树中的文件,工作<branch>,切换到它,并通过在分支指向HEAD准备。 保留对工作树中文件的本地修改,以便 可以将它们提交到<branch>

如果没有找到,但确实存在着跟踪分行 只有一个远程(叫)具有匹配名称,当作 相当于

$ git checkout -b <branch> --track <remote>/<branch> 
+0

感谢您的快速回复,你能告诉我上游和原产地之间有什么区别,我相信上游将是远程回购,并且起源将是本地回购,是吗? – Abbas

+0

上游和原点通常都用作远程存储库的名称。 (不是您的本地结账。)通常,当人们说“上游”时,他们指的是每个人都在推动其更改的“主”存储库。 'origin'是git默认给你克隆的远程仓库的默认名称。它可能是上游存储库,或者它可能是您自己的上游存储库的分支。在这两种情况下,虽然它是远程存储库,但不是您的本地克隆。 – Ajedi32

+0

其实我有叉原始回购和原始回购已经有这3个分支,那么为什么这些分支没有出现在我的本地克隆当我分叉它? – Abbas