2011-04-20 112 views
3

我在版本控制系統上仍然有點新。Git開發工作流程

目前我有兩個分支:masterdevelop。昨天我正在開發分支,並開始意識到我所做的是錯誤的,所以我不得不切換回一些較舊的提交。

問題是,在最近的提交中,我添加了幾個新的單元測試,並且相當多地改進了一些關鍵的單元測試基礎結構類,即使在返回到我的項目後,我也想保留在我的項目中較舊的提交。

這讓我意識到,也許我應該從一開始就應該做的是有一個分支與所有那些與「項目相關」的功能相關,而不一定與「當前功能」相關。我對嗎?

如何在日常工作流程中處理這些事情?

回答

3

在這個特定的情況下,我會創建一個新的分支(稱爲ImproveUnitTests),然後從與開發相關的那個主題的提交中進行櫻桃挑選。然後,您的ImproveUnitTests可以輕鬆地自行合併回主。

對於日常的東西,我使用了很多分支機構。如果我正在開發featureX並看到我需要修復其他東西,我會切換回我的主人並創建一個新的分支來修復這些東西。然後將我的「fixit」分支合併到master中,然後將其關閉。

5

我想向您推薦文章A successful Git branching model,它使用功能分支,開發分支,發佈分支和hoxfixes來表示不同的目的。另一個你可能感興趣的Git擴展是gitflow,它爲文章中提到的分支模型提供了高級的存儲庫操作。

+0

雖然這是一篇優秀的文章,我不確定它是適用於版本控制系統的新手。這有點像描述如何在學生還在學習錘子和鑽子時建造房子。 – 2011-04-20 23:14:27

+3

@Greg,我不同意。無論如何,新版本控制的人都是「蓋房子」。他們的軟件將具有相同的複雜性,並且他們仍然會有相同的更改要恢復。擁有合適的分支模型可以使這些任務變得更容易。這更像是有人告訴他們用這些工具建造房子比較容易,但他們無法弄清楚爲什麼他們不得不拆卸和重建牆壁。一個好的分支模型就像是一個藍圖,可以避免在第一時間很難修復錯誤,儘管在短期內看起來更容易開始敲擊。 – 2011-04-21 13:17:12

1

如果我認識你,你想恢復你的修改,但保留其中的一部分。在這種情況下,我會切換到碩士和櫻桃選擇好的變化(單元測試更改),然後只是恢復開發分支,並開心:)