2014-07-18 71 views
0

我正在閱讀Pro Git,關於遠程存儲庫的部分對我來說有點令人困惑。特別是,有在這裏筆者說的一段:git回購有多個遙控器是什麼意思?

$ cd grit 
$ git remote -v 
bakkdoor git://github.com/bakkdoor/grit.git 
cho45  git://github.com/cho45/grit.git 
defunkt git://github.com/defunkt/grit.git 
koke  git://github.com/koke/grit.git 
origin [email protected]:mojombo/grit.git 

http://git-scm.com/book/en/Git-Basics-Working-with-Remotes

「如果你有一個以上的遠程,該命令列出他們全部例如,我的砂庫看起來是這樣的。

這意味着我可以從這些用戶的拉動貢獻很容易,但是要注意,只有原產地的是SSH URL,所以它的(我們將討論爲什麼這是在第4章)唯一一個我可以推到「。

我的問題是,什麼是關於四個遠程倉庫(bakkdoor,町,德芬克特,佐治·高基)砂礫?他們的回購是否構成沙粒回購?或者他們是否將相同砂礫回購的副本分開?或者他們根本不相關?

此外,如果砂礫回購是由那些4點獨立式回購,爲什麼他們單獨命名?把它們全部置於「起源」之下不是更有意義嗎?

正如你所看到的,我幾乎完全喪失了這一點。我覺得它被解釋給我的方式正在我的頭上。

回答

1

這個想法是,你可以創建一個遠程倉庫(「origin」)並將你的項目代碼推送到那裏。假設您是該項目的創建者,那麼您的資源庫被視爲您的項目的正式版本。

假設你被允許推送到遠程倉庫的只有一個,但其他人可以從它拉出。

所以其他人可以複製你的資料庫,並創建一個基於它自己的遠程倉庫(GOT例如,GitHub上,您可以創建基於其他用戶的信息庫中的遠程存儲庫)。他們可以在自己的存儲庫中爲代碼添加功能。現在,如果他們想爲官方版本(由您維護)做出貢獻,他們可以告訴您他們添加的新功能,並要求您將其添加到項目中。

你做這件事的方法之一是將他們的倉庫添加爲額外的遠程倉庫(bakkdoor,cho45等等......都是這樣的倉庫,它們是以創建它們的GitHub用戶的名字命名的)。由於您不擁有這些存儲庫,因此您只能讀取它們。然後,您可以從它們中提取所需的任何更改,並將它們推送到遠程存儲庫,從而將這些更改集成到正式版本中。

這種類型的協作稍後會在Pro Git書籍中討論。你應該繼續閱讀,一切都會變得更清晰。

+0

如果我不是砂礫回購商的所有者,這種事情的目的是什麼? – itsmichaelwang

+0

@Zapurdead那麼,一些開源項目就是這樣工作的。許多人可以貢獻,但有一個人維護項目的主版本。 – Eran