2016-07-02 101 views
0

我正在使用git來管理項目。通常我會在一個星期內完成一項功能,並執行如下很小的提交:Atomic提交最佳實踐

  • 爲某個實體類實現存根;
  • 爲實體添加存儲庫服務;
  • 添加測試以保存實體;
  • 爲實體列表實現UI;
  • ...

每個提交的是非常小的(〜20-50行),但它們依賴彼此。每一次提交都能確保整個系統正常工作。

作爲一種相反的方法,我可以爲〜500 +行「實現特徵X」創建單個提交。

問題是最佳做法是什麼?提交哪個方法是原子的?

PS。 我知道如何擠壓提交。我所要求的是哲學部分。

+0

你可以在side branch中做小提交,比你可以不做快進合併來引入「Implement feature X」commit。 – PetSerAl

回答

1

你舉例說明了4個提交聲音完全合理的不同提交,即使它們都與相同的任務有關。

較小的提交總是比較長的提交更好。但你可以質疑「多小」?我會使用以下的理念:

如果你可以描述你在這個提交中做了什麼,在短句 它是有道理的,提交。

+0

另外,如果你不能用一個簡單的句子來描述你的提交,那麼它可能應該被分成幾個提交 – everton

1

小提交是最佳實踐。您可以更輕鬆地看到哪個更改引入了一個錯誤。與需要合併工作的團隊合作更容易。

這與您使用的版本控制系統無關。

編輯:

另一個好處是,當你建立並逐步提交你的軟件,你可以毫不畏懼地嘗試在下一步的東西,知道當事情不工作這是一個快速復位,回到了最後一步到目前爲止所有的工作。

0

盡你所能,嘗試讓給定的提交代表「一個邏輯工作單元」。這使得更容易理解git歷史。

+0

我試圖避免提交像「實現具有所有功能的新版本」。但我同意,大的承諾使承諾歷史更清晰。問題是如何定義邊界以及哪種方式更好。這就是爲什麼我問, – abguy