2011-03-22 90 views

回答

12

(我喜歡的git早午餐的想法 - git的用戶在週日見面,爲大量的油炸食品;))

在github上派生一個項目,使在自己的倉庫中修改的想法是該項目的所有者不需要信任你或讓你推送到他們的存儲庫。如果您希望他們考慮合併代碼庫中的代碼,那麼您可以將它們發送給pull request。 GitHub有一個很好的pull請求系統,上游開發者可以在這裏查看和評論你的貢獻。

在一組值得信賴的開發人員中,每個人都可以推送到一個共享存儲庫,通常會將您開發的每個新功能都推送爲新的主題分支,並要求其他人檢查您的工作並考慮合併。

有關git的許多優點之一是它並不特別關心某個特定分支提示所在的存儲庫 - 該提交將始終具有相同的SHA1sum,因此您可以隨意按下並拉動它。真的,如果它在GitHub的分支或推送到共享存儲庫或任何其他...

+0

謝謝。這解釋了很多(但是直到現在我還不明白,爲什麼我不能早早地做這個事情) – uhbif19 2011-03-23 07:49:29

+1

@ uhbif19:像GitHub這樣的站點可能有一個安全模型,你可以指定某些用戶只能使用特定名稱推送到分支機構,但是,我認爲這會讓實施人員感到頭痛,並且很難爲存儲庫所有者配置 - GitHub模型相當優雅,因爲它很容易理解,但仍然(a)允許任何人都可以通過分手和提出pull請求來做出貢獻,並且(b)允許值得信賴的合作者直接推送到特定的存儲庫 – 2011-03-23 07:56:09

+2

@ uhbif19:順便說一下,我認爲這只是你的文章中的一個錯字,但是由於你在該評論中重複了它,或許應該指出他們是「分支」而不是「早午餐」 – 2011-03-23 08:16:47

0

github fork意味着你有一個github repo,所以你可以推動改變到這個。這意味着您所做的更改可以在github上看到,但原始所有者不需要包含它們。

創建一個fork爲您提供了一個可寫入版本的存儲庫。

分支在這方面與叉子完全不同。一個叉子可以有很多分支。

9

要解釋你的問題「爲什麼我不能只是推我的分支到他們的回購? 「,考慮到即使github可以讓你做到這一點,而不會潛在地破壞所有人的整個回購,大多數維護者仍然不會很高興他們的清理回購變成了數十個或數百個分支的傾銷地。

看到這些分支機構的其他貢獻者會認爲上游開發人員正在爲他們工作,即使他們真的被第三方遺棄了一半已完成的貢獻。

有趣的是,您的工作流程無論如何都是完全相同的,只需在上游回購站點上點擊「分支」按鈕即可。

比較:

  1. 混帳混帳克隆:// github上。COM /人/ someproject
  2. git的結帳-b mycoolfeature
  3. 砍砍砍
  4. 混帳推起源mycoolfeature
  5. 提交拉請求mycoolfeature分支

VS

  1. 點擊「 fork「在github.com/somebody/someproject
  2. git clone git://github.c OM /你/ someproject
  3. git的結帳-b mycoolfeature
  4. 砍砍砍
  5. 混帳推起源mycoolfeature
  6. 提交mycoolfeature分支拉請求

真的是完全沒有開銷你創造一個分叉。

如果你已經擁有上游回購的克隆,而你擔心你將不得不作出一個新的克隆和浪費一些時間,試試這個工作流程:

  1. 點擊叉
  2. CD someproject(您現有的克隆)
  3. git的遠程添加myfork的git://github.com/you/someproject
  4. git的結帳-b mycoolfeature
  5. 砍砍砍
  6. 混帳推myfork mycoolfeature
  7. 提交拉請求mycoolfeature分支

希望這有助於!