2011-05-17 163 views
5

我在github上有一個項目「MyfirstProject」。現在我通過克隆「MyfirstProject」來製作另一個項目「SecondProject」,因爲核心代碼將是相同的。如何創建另一個存儲庫的克隆的新存儲庫?

每當我在「MYfirstProject」更新時,我只需要更新。

現在我想爲github中的這個「SecondProject」創建一個存儲庫,因爲我必須在不同的計算機上工作,並且它將有不同於「MYfirstProject」的代碼。

我不認爲分支是正確的事情,因爲我永遠不會合並它們。

我該怎麼辦?

我是否需要推送到新的存儲庫?它不會影響從「MyfirstProject」拉?

你是做什麼的?

在此先感謝。

回答

16

可能有幾種方法可以執行這包括一個更聰明的人,但這是我如何做到這一點:

  1. 在Github上新建一個名爲SecondProject的回購協議。
  2. 本地克隆你的MyfirstProject,無論是從磁盤或從Github。 然後在你需要移動到第二個倉庫的分支上使用git pull。
  3. git remote set-url origin [email protected]:yourname/SecondProject.git
  4. 推它。

請注意,該克隆保留與MyfirstProject共享的歷史記錄,如果您改變了對「永不合並」位的想法,這將非常有用。

+0

我可以從MyfirstProject中取出嗎? – shin 2011-05-17 18:26:51

+0

@shin:如果您將第一個項目添加爲第二個項目作爲遠程存儲庫,則應該能夠進行取捨。 – gotgenes 2011-05-17 20:23:05

+1

@shin:'git remote先添加第一個git:// github.com/yourname/MyfirstProject.git',然後'git pull first master'(或'git fetch'),只要你想改變'MyfirstProject'。 – 2011-05-17 20:55:49

0

現在我通過克隆 「MyfirstProject」,因爲核心代碼將 是同一製作另一個項目 「SecondProject」。

這取決於您所說的「核心代碼」。如果它是一個常用數據結構,實用程序等的庫,它們應該全部包含在單獨的git存儲庫中,並且不應該在該存儲庫中包含依賴於該庫的特定於應用程序的代碼。特定於應用程序的代碼應該位於一個單獨的新存儲庫中(不是從庫存儲庫中克隆)。將您的應用程序特定的代碼與您通常鏈接到任何第三方庫的方式鏈接到庫代碼。

如果您的意思是說您有一些應用程序,但您需要根據您工作/編譯的機器進行不同的配置,應該在同一個存儲庫中將其作爲分支進行跟蹤,而不是作爲git存儲庫的單獨克隆。有一個「主」分支,其中包含代碼的默認配置(例如,最常用的機器或生產機器)。特定於其他計算機的配置會獲得單獨的分支,例如筆記本電腦的「筆記本」分支,工作站桌面的「工作」,Amazon EC2實例的「雲」等。

+0

儘管我大體上同意,但僅僅複製一些代碼並分叉自己的項目有時可能會有用。 OP可以隨後將項目合併回來,即使它們在不同的回購站中。 – 2011-05-17 18:01:21