標籤:

使用Git的童鞋們,你們每次提交的依據一般是以什麼為單位的呢?

一般提交的時間點是?
一般提交的顆粒度是?
一般提交的comment格式是?


時間點和顆粒度:

使用Git時,我傾向於在本地頻繁提交:設定一個修改主題,控制住自己手賤修改不相關主題的慾望,只完成既定主題的修改,然後提交;在push之前進行rebase:拆分大commit,調整commit的順序,按代碼功能主題合併小commit。

comment格式:

以前我最早的時候是參照PyMonkey上的一個格式來寫的,不過現在這個網站貌似掛點了已經,通過Google查詢"git commit message pymonkey"第一條結果看看緩存也還行。

還有一個參考是這裡

http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html


git 提供了在 repo 之間同步和傳遞狀態的方便和低代價工具,怎麼用視乎 SCM 制度或習慣,不同的團隊可以設定不一樣的 repo 分布和管理方案,我自己就見過幾個不一樣的模式,當然有些最佳實踐是可以借鑒的,比如,總的來說比較鼓勵小粒度提交,不懼怕多分支和合併,等等。『A successful Git branching model』這篇文章提出的是一種管理模式的最佳實踐,很有教益,但是比較複雜,是 git 用了一定程度才適合去學習的。


應該去搜這個線索,baby step。極限編程的重構、TDD、結對編程、源代碼管理都離不開 baby step。這個一個設計和實現過程的極致過程,所有的分散式版本控制系統都讓 baby step 變得更加可行。


其實可以參考Linus內核,從日誌信息看,每次提交的粒度非常之小。雖然粒度小要好,但在項目初期,代碼不穩定的情況下,小粒度常常很難保證,只有到項目中後期才能達到。

另外,版本控制只是一個方面而已,如果代碼模塊亂糟糟,牽一髮動全身,那Git也能難發揮其優點的。


推薦閱讀:

Git 必知必會
【Trac】瀏覽器中查看源碼庫
一個人寫程序,版本控制用svn還是git?
git branch 相關操作
Git GUI windows客戶端保存用戶名與密碼的問題

TAG:Git |