2012-04-01 40 views
5

個人而言,如果我用gitk來查看git或linux回購庫,我完全被大量的合併/分支所淹沒。我完全不知道發生了什麼。Git:git/linux維護者如何維護如此多的分支機構

我認爲在一般情況下,您嘗試在公開存儲庫中嘗試使用盡可能線性的歷史記錄,並且只有少數幾個分支(例如master,maint,next,pu - 就是它)。即我認爲合併很少,主要是使用rebase。顯然我錯了。

  1. 我不知道什麼混帳/ Linux的維護者做有一個良好的易概述
  2. 他們爲什麼不使用更頻繁衍合,並且具有比只掌握,MAINT更多分支機構,未來PU?
+0

分支機構很便宜,所以它們經常被利用:) – Nic 2012-04-01 16:28:00

+0

2007年[Google Tech Talk](https://www.youtube.com/watch?v=4XpnKHJAok8)Linus Torvalds列舉了一些他如何使用git的例子特別是內核和git本身。 – andrybak 2015-10-18 11:04:47

回答

3

有一件很重要的事情要了解與Git和rebase的關係。

Do not rebase commits that you have pushed to a public repository. 

在您正在本地進行合併期間,您可以隨時多次使用rebase,因爲它是本地的。如果你喜歡線性歷史。換句話說,你不會看到他們所做的重建工作。

關於分支數量的另一部分只是一種經驗,並不僅僅是一個概念問題。我已經完成了300多個分支的並行分支......這只是一種通過使用約定和良好概念來馴服野獸的方式。

2

我不是內核開發者,當然不能爲他們說話。 Here's Linus談到它的一些參考資料,我想你會回答你的問題。我會補充說,有很多隨機分支是混亂,但施加一點點的順序,使其更容易有分支恕我直言。 (順序例子可能是命名話題分支機構topic/short_name,包括有意義的提交信息,開發者保留一些外部文檔,實際上互相交談,或任何適合您的環境。)

我還將包括一個參考this工作流程,因爲它實際上需要Git閱讀,並適用於你的問題。

+0

+1鏈接到該Git工作流程。這是我見過的最好的Git解釋。 – 2012-06-26 00:36:50

0

請記住,當你克隆一個git回購,你可以得到所有的遠程分支機構,但你只能創建和結帳一個本地分行(通常是master,跟蹤remotes/origin/master

(這就是爲什麼你有像「Track all remote git branches as local branches」)

根據您感興趣的話題,你只檢出和跟蹤一個特定的分支,做了一些工作,並定期重訂上origin/branch頂部您當地的分行,讓您工作起來-TO-問題日期。

您不會從官方公共分支機構合併到您的分支機構:這將是一個回合並且應該避免它們,如「What is the right git workflow with shared feature branches?」中所示。

0

查看Greg K-H Ask a kernel developer專欄:他詳細解釋了他的工作流程。格雷格曾經是穩定分支的維護者;他是許多子系統的當前維護者,包括USB。