我正在使用git來管理項目。通常我會在一個星期內完成一項功能,並執行如下很小的提交:Atomic提交最佳實踐
- 爲某個實體類實現存根;
- 爲實體添加存儲庫服務;
- 添加測試以保存實體;
- 爲實體列表實現UI;
- ...
每個提交的是非常小的(〜20-50行),但它們依賴彼此。每一次提交都能確保整個系統正常工作。
作爲一種相反的方法,我可以爲〜500 +行「實現特徵X」創建單個提交。
問題是最佳做法是什麼?提交哪個方法是原子的?
PS。 我知道如何擠壓提交。我所要求的是哲學部分。
我正在使用git來管理項目。通常我會在一個星期內完成一項功能,並執行如下很小的提交:Atomic提交最佳實踐
每個提交的是非常小的(〜20-50行),但它們依賴彼此。每一次提交都能確保整個系統正常工作。
作爲一種相反的方法,我可以爲〜500 +行「實現特徵X」創建單個提交。
問題是最佳做法是什麼?提交哪個方法是原子的?
PS。 我知道如何擠壓提交。我所要求的是哲學部分。
你舉例說明了4個提交聲音完全合理的不同提交,即使它們都與相同的任務有關。
較小的提交總是比較長的提交更好。但你可以質疑「多小」?我會使用以下的理念:
如果你可以描述你在這個提交中做了什麼,在短句 它是有道理的,提交。
另外,如果你不能用一個簡單的句子來描述你的提交,那麼它可能應該被分成幾個提交 – everton
小提交是最佳實踐。您可以更輕鬆地看到哪個更改引入了一個錯誤。與需要合併工作的團隊合作更容易。
這與您使用的版本控制系統無關。
編輯:
另一個好處是,當你建立並逐步提交你的軟件,你可以毫不畏懼地嘗試在下一步的東西,知道當事情不工作這是一個快速復位,回到了最後一步到目前爲止所有的工作。
盡你所能,嘗試讓給定的提交代表「一個邏輯工作單元」。這使得更容易理解git歷史。
我試圖避免提交像「實現具有所有功能的新版本」。但我同意,大的承諾使承諾歷史更清晰。問題是如何定義邊界以及哪種方式更好。這就是爲什麼我問, – abguy
你可以在side branch中做小提交,比你可以不做快進合併來引入「Implement feature X」commit。 – PetSerAl