版本控制的極佳實踐

來源:互聯網
上載者:User

            本文是www.git-tower.com總結的使用Git的最佳實務,其中的大部分實踐具有普適性,可用其他版本控制工具SVN,CVS等。  

            原文:http://www.git-tower.com/files/cheatsheet/Git_Cheat_Sheet_grey.pdf

                 "Best Practice of Version Control in Git"

          1. 提交相互關聯的變化(Commit Related Changes)

         每次提交的應該是一系列有關聯的變化。例如,修複了兩個不同的bug應該分別提交兩次。提交的變化少,

其他開發人員更容易理解變化的內容,出現問題更容易復原到原來的狀態。  

        譯者註:假想現在有2個bug,第一次提交時第1個bug修複完畢,第2個bug修複了一半,第二次提交時2個bug修複完畢。

後來發現需要先僅修複第1個bug,因為第一次提交時包含了第1個bug的修複代碼與第2個bug的半成品,所以需要恢複到上次

提交狀態之外的額外努力,使用版本控制帶來的便利就大打折扣了。

          2.經常提交(Commit Often)        

         經常提交可以保證提交的變化少而且相互關聯。而且,可以更快地使其他開發人員看到最新的代碼。這樣更容易讓所有人快速

合并變化,避免發生衝突。若偶爾提交一次且代碼變化較大,將使衝突很難解決。

          3.不要提交半成品(Don’t Commit Half-done Work)

        

         不要提交未完成的代碼。這並不是要求你完成某個全面、大型的功能的代碼後再提交,而是:按邏輯將其分解成多個部分並儘早提交。

         不要為了將代碼儲存到伺服器上而在下班前匆忙提交,如果僅僅是為了提交今天的工作內容,嘗試使用“git stash”代替”git commit”。

          4.提交之前先測試(Test Code Before You Commit)

         不要提交你”認為”已經完成的內容。先對改變的代碼作詳盡的測試並確保所做的改變沒有副作用。雖然提交半成品僅僅需要的

是原諒自己,然而向伺服器提交測試過的代碼再讓其他開發人員使用更重要。

          5.寫有用的提交記錄(Write Good Commit Message)

         先簡短地總結對檔案所做的改變,插入空行,再寫詳細內容。詳細內容應該提供了以下幾個問題的答案:

                  — 改變的目的?

                  — 改變後與上次實現的區別?

          6.版本控制不是檔案備份(Version Control Is Not A Backup System)

         將檔案備份到伺服器上是版本控制工具帶來的副產品,但是你不應該把版本控制系統用來備份檔案。使用版本控制時,應力求

每次提交的都是相關聯的變化(見第一條)——而不是提交一堆檔案。

         譯者註:版本控制的目的是易於追蹤檔案變化,方便多人協作,實現開發中的工作流程(branch, merge, tag...)

          7.使用分支(Use Branches)

          分支是Git最強大的特性之一——這並非偶然:Git最初的核心目標就是快速簡單地建立分支。分支是協助劃分多個開發路線的完美

工具。你應該在開發工作流程中廣泛套用分支:如增加新功能,修複bug,驗證想法...

             

          8.尋求協助(Help & Documentation)

          通過 git help <command>擷取git命令的協助  

          Git 官方網站: 

http://www.git-scm.com  

          學習Git資源:

                                 http://progit.org  

                                 http://book.git-scm.org  

                                 http://gitref.org

 轉載本文請註明作者和出處[Gary的影響力]http://garyelephant.me,請勿用於任何商業用途!

Author: Gary Gao( garygaowork[at]gmail.com) 關注互連網、分布式、高效能、NoSQL、自動化、軟體團隊              

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.