我有一個關於git的小項目,我是唯一的開發人員。目前,我只用一個主分支來實際工作。在單人git項目中使用分支是明智的嗎?
現在該項目是以某種方式工作,我想實施一些新功能。問題是,我應該爲每個新功能創建新分支並將其合併回來嗎?
事實是,我的工作流程將會改進「功能分支」,並且在大多數時間將它合併回原來的「主分支」,那麼根本不需要創建新分支?
我有一個關於git的小項目,我是唯一的開發人員。目前,我只用一個主分支來實際工作。在單人git項目中使用分支是明智的嗎?
現在該項目是以某種方式工作,我想實施一些新功能。問題是,我應該爲每個新功能創建新分支並將其合併回來嗎?
事實是,我的工作流程將會改進「功能分支」,並且在大多數時間將它合併回原來的「主分支」,那麼根本不需要創建新分支?
從gitworkflows
手冊頁:
任何平凡的功能將需要 幾個補丁來實現,並可能 獲得額外的錯誤修正或改進 其生命週期內。
犯下直接在 集成分支一切導致許多 問題:壞提交不能 百廢待興,所以他們必須轉換一個,這將創建混亂 歷史,並進一步潛在的錯誤 當你忘記回覆一個 組變更的一部分。並行工作 混淆了更改,進一步造成了混淆。
使用「主題分支」解決了這些問題。
即使您是唯一的開發人員,也應該使用主題分支(即功能分支)。
除了上述原因,我想補充:
經驗法則:如果你在開發過程中破壞產品,分支。 假設你在樹幹中發現一個錯誤,並且想修復它。
只要它可以幫助你,它是有道理的。
我用我的個人項目SVN,有時當我想研究一個新功能或扔掉很多代碼我喜歡分支我的主分支。
這樣我可以長時間工作在新功能上(閱讀:多個提交)如果我失敗我總是可以回到主分支,如果我成功,我可以合併整個分支或只是有意義的變化。
我會說它可能是個人喜好,但在我工作的一些獨奏項目中,至少爲新作品創建一個分支有時很有用,讓主分支可用於錯誤修復。當發現有人向現有版本報告錯誤時,我發現自己正在處理新事物。在這種情況下,我可以輕鬆地擱置新代碼並修復主分支上的錯誤,然後回到我正在處理的事情上。然後最後將它們合併在一起。
雖然我通常不支持每個新功能。我通常不會同時在多個功能上工作......偶爾會出現一次,在這種情況下,這取決於兩個功能文件重疊的程度,這會導致我再次分支。
我會說是的,每次我將代碼推入生產環境時,我都會創建一個版本分支。因此,如果出現問題,我可以簡單地返回到該分支,並將修復推出修復程序,然後將我的代碼更改合併到主幹中。
我應該爲每個 新功能創建新分支,並在事後將其合併回 ?
是的,因爲中途通過實施該功能,你會發現在你的產品代碼一個表演停止的錯誤,你會慶幸你可以git checkout master
回到那就是在生產代碼,並修復它。我的規則是始終讓我的主分支處於可部署狀態。
我是說有特色的分支,即使在沒有客戶一個簡單的1人項目。
的原因是工作流程。如果你使用一個單一的工作流程,你可以在應用所有你參與的項目,每次都會犯錯誤,減少想法的決定,如果你的「微不足道的」項目突然變成了自己的生活,它也會使生活變得更容易:-)。
(單個工作流當然是理想的,但任何幫助...)
添加到其他人所說:分支是那麼容易創造&保持在git的,爲什麼不能讓一個分支?即使你永遠不需要在舊分支上進行bug修正/更新,你仍然會得到一些額外的關於你的代碼庫的元數據,通過你一年中很樂意擁有的分支。
我非常喜歡製作各種各樣的功能分支,原因有兩個:首先,您可以構建您的工作流程,以便主分支隨時可以發貨(這非常酷);第二,一旦您有一些功能分支的歷史,諸如gitk或qgit之類的樹看起來給你一個非常酷的代碼庫歷史的高級別感覺,單行不會。
我也大致遵循這個工作流程,但我最初標籤發佈的版本,而不是創建一個分支。然後,如果需要,我會從該標籤創建一個分支;但大多數情況下我並不需要,所以將它們作爲標記可以阻止我的分支名稱空間變得混亂。 – 2009-11-15 19:59:53
好點,我的發佈很少,所以我沒有真正考慮長遠。標籤聽起來像是一個更清潔的方式向前邁進。謝謝! – Anthony 2009-11-15 20:34:12