2015-11-03 88 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