2015-05-27 108 views
0

如果我只是對我的新git repo(git push -u origin master)執行初始化操作,我認爲我需要通過立即執行克隆來將本地代碼設置爲工作副本。或者,它基本上已經「克隆」,或者我的意思是它已經被標記爲「工作副本」,因爲這是一個新的回購我創建..不存在嗎?只是想確定一下,我對Git相當陌生。初始推送後克隆?

+0

嗯,很難理解,你可以寫一些代碼行讓我們知道你在哪裏? –

回答

2

我開始解釋之前,我需要你瞭解3支鏈是在這裏工作:

  • 本地master
  • 遠程master(在origin
  • 本地origin/master(當地的 「反思」通常不用於直接使用)

在您推送之前,您只有一個本地master,沒有別的,空的遙控器。

git push -u origin master 

這試圖當地master樹枝上叫origin遠程倉庫相同的名稱(master)(用於遠程的通用名稱,克隆時甚至採用)推到遠程分支。

如果成功的話,Git會創建一個名爲origin/master一個新的本地分支,並設置本地master「跟蹤變化」(因爲-u在「上游」),以origin/master:該分支的任何更改都假定爲「應該合併也變成master「。

只有當您從遠程存儲庫中獲取更改時,這纔是重要的。當您在master分支上時,它將首先將提交提交到origin/master,然後檢查master正在跟蹤哪個分支。找到origin/master後,它會嘗試將merge與您當地的master一起使用。 pull在內部做了很多。

在此之後,您的本地masterorigin/master應該在同一個提交上,並且您的遠程master應該看起來與您本地的完全相同。所以你不需要做任何事情。

爲了更好地理解分支,我強烈建議this interactive tutorial

+0

漂亮的工具,沒有遇到過,但感謝 – PositiveGuy

0

如果我沒有理解這個權利,你現在在alread "cloned"狀態:

如果您已成功運行一個git push -u origin master然後從本地資源庫運行它。

通過提供-u選項來推,git會記住你的分支是爲了跟蹤一個上origin,這類似於你通過克隆遠程倉庫得到什麼。

0

沒有必要克隆您推送的計算機上的任何內容。您基本上擁有遠程存儲庫的克隆;它恰好與您的本地存儲庫完全相同。

當您克隆存儲庫時,這意味着您的不存在目前在您的計算機上存在的代碼。在你的場景中,你已經有了代碼,所以你不需要做任何克隆。

+0

是的,只是想確定...但是克隆是爲現有你的權利 – PositiveGuy

相關問題