2009-12-08 112 views
13

所以我在github上克隆了一個項目並修復了一個補丁。因爲這是我第一次在git中工作,試圖找出把它放到網上的最佳方式。用git貢獻

在github上檢出我自己的(克隆)存儲庫時,只有一個分支:。我創建了一個分支,myfix,它現在擁有一個提交,這是該錯誤的修復。

  • 現在我應該一切到我的github克隆項目?我認爲這會在我的github項目上創建包含該單一修復提交的分支myfix
  • 我應該合併myfix分支,刪除myfix然後一切嗎?

在網上搜索,似乎是共同的/好的做法是離開不變,使用純粹是爲了從真正/原公益項目庫拉(也就是別人所接受的捐款和這樣)。但也有人提出其他策略:

  • 創建上游分支,把你的清潔和準備貢獻有讓其他人可以找到他們很容易,不與我的其他不全/實驗分支機構混合起來(我不知道爲什麼這些會如果他們不完整,甚至可以上網)。
  • 創建一個下游分支拉動此處的其他更改用於脫機合併。

如果我遵循上面的兩個(雖然目前感覺有點矯枉過正)主分支的目的是什麼?

Git可以做任何上述的組合(或全部)。這讓我對如何輕鬆向別人展示我的作品感到困惑。有沒有這樣的「常用」工作流程?還是每個人都爲自己和你發佈特定分支(多數民衆贊成推動)在問題跟蹤器的固定錯誤的特定修訂?

回答

7

當您克隆存儲庫時,Git會自動創建remote tracking branches,它可以執行您對主站分支所描述的操作。您可以列出這些遠程跟蹤分支有:

git branch -r 

由於跟蹤上游資源庫爲你已經完成,你通常會使用你的分行主線變更項目。下面是我會你的特殊情況做:

  • 合併的myfix分支到您的克隆。 (在「主題分支」中完成此操作是很好的做法。)
  • 主人分支到Github。 (目前還不清楚你是否分叉了原始倉庫,或者只是從中克隆了它,你需要分叉原始倉庫,創建自己的副本,以便下一步工作。)
  • 發送Github pull request給所有者你分叉的倉庫。
+0

只是這樣做了,除了我在合併重名的「主題分支」之前推回到主人。拉請求來自我推送的分支myfix。 – Mizipzor 2009-12-08 23:05:29

+0

這很好,分支名稱沒有任何意義。一個提交只是從樹的一個狀態到另一個狀態的改變,不管它有多少個名字。 – 2009-12-08 23:09:24

5

Github上,您可以發送pull requests到其他倉庫的業主,並要求說:在哪裏可以找到你的有趣的變化。這意味着您不必將所有更改保留在特定的知名分支中。

因此很容易在其他人會增加你的你的補丁被錄取的機會,所以保持一個乾淨的主作爲一個共同的參考點,並在分支機構變更關閉主的。保持分支機構的狹隘性:不要在單個分支中堆放13個新功能,而要在乾淨利落的地方將它們分開。

+2

因此,樹枝被創建,推動,被其他人拉動,合併然後移除的情況並不罕見? – Mizipzor 2009-12-08 23:04:12

+2

正確。在將主題分支合併到項目主人後,保留它幾乎沒有什麼好處。 – 2009-12-09 18:34:09