g4e基础篇#1 为什么要使用版本控制系统
本篇是Git企業開發者教程基礎篇的第一篇
1. 基礎篇:
為什么要使用版本控制系統
Git 分布式版本控制系統的優勢
Git 安裝和設置
初始化Git存儲庫(Repo)
起步 1 – 創建分支和保存代碼
起步 2 – 了解Git歷史記錄
起步 3 – 拉取請求 Pull Request 工作機制
Git是一種版本控制系統,讓我們首先了解一下使用版本控制系統的必要性。
版本控制系統有助于你跟蹤和保存在一段時間內所修改的代碼,同時幫助你跟蹤所有你所作出的變更,它就如同一部相機,不停的幫助你記錄某一時刻的代碼狀態快照并永久保存這些快照,以便你可以在未來的任何時間找回之前的改動。
如果沒有版本控制系統,你需要在自己的計算機上保存同一份代碼的多個副本才能確保滿足很多常見的開發場景。我相信很多剛剛接觸編程的同學都這樣做過,但是這樣做會非常危險,因為你可能會誤刪或者修改了其中某些文件,造成工作丟失,最糟糕的是,你無法知道你為什么做了這些改動以及做了什么改動。在團隊開發的場景下,版本控制系統變得更加重要,因為你會非常頻繁的和其他開發人員交換代碼,有時需要同步,有時需要并行,如果沒有版本控制系統,這一切會變成每個人的噩夢,讓你無法專注于你的開發工作,造成極大的浪費的效率損失。
對于企業開發者而言,如果沒有版本控制系統基本上就無法開展日常工作,因為與個人開發不同的是,企業開發需要幾十人甚至成百上千人協同完成開發工作。同時,企業級軟件還存在多個并行發布版本,多個運行環境(調測,測試,預生產,生產等),多種專業分工(架構,設計,開發,測試,運維)等復雜情況;要適應這樣復雜的情況,沒有高效的版本控制系統和適當的分支策略和流程控制是不可能實現的。
簡單總結一下使用版本控制系統的好處如下:
統一工作方式:版本控制系統工作流可防止每個人使用各種不兼容的工具按照自己的習慣進行開發的混亂局面。?版本控制系統提供流程強制執行措施和權控制能力,讓所有人都有章可循。這對于企業開發者尤其重要,雖然軟件開發是非常強調單個開發者個性的過程,但團隊開發中個性化的環境和工具只能造成協作效率的下降,因此通過統一的版本控制工具來統一所有人的工作方式至關重要。
跟蹤改動:每個版本都有一個關于版本更改(如修復 bug 或新增功能)的說明。 此說明有助于按版本(而不是按各個文件更改)來跟蹤代碼更改。 可以根據需要隨時在版本控制系統中查看和還原各個版本中存儲的代碼。 這樣一來,你就可以在任意一版代碼的基礎上輕松開展新工作。這一特性對于很多企業開發中場景的場景非常有幫助,比如:在同步開發新版本的時候需要臨時解決一個線上問題,我們必須能夠精準定位線上環境所使用的代碼版本,在這個版本上進行修復并快速發布解決問題,同時還要確保這個bug修復不會在未來版本被遺漏。
團隊協作:版本控制系統可以幫助不同開發人員同步代碼版本,并確保你的更改不會與團隊其他成員的更改相互沖突。 團隊依賴版本控制系統中的各種功能來預防和解決沖突,讓團隊成員可以同時進行代碼修改。很多人在使用版本控制系統時最頭疼就是沖突的解決,因此很多團隊會禁止成員使用分支。對分支進行一定程度的控制是很有必要的,但是控制過死會讓團隊成員束手束腳,造成團隊成員之間的緊耦合,從而降低開發效率。有效的分支策略需要綜合考慮多種因素,包括:團隊結構,發布方式,環境部署流程,職能團隊間的配合,代碼質量的控制等。Git所代表的分布式版本控制系統有效的平衡了管控和自由之間的矛盾,允許你設計成最適合你的團隊的編碼協作模式。
保留歷史:在團隊保存代碼的新版本時,版本控制系統會保留變更歷史記錄。 ?團隊成員可以查看此歷史記錄,了解是誰在何時進行更改以及更改原因。 有了歷史記錄,你就有信心進行各種嘗試和探索,因為可以隨時回退到上一正常版本。歷史記錄不僅僅可以幫助成員有效的了解代碼的來龍去脈,還能幫助成員避免犯錯誤。基于歷史記錄進行一定的數據分析后,我們可以讓開發人員更智能的進行工作。
配合持續集成:持續集成/發布工具必須和版本控制系統有效的集成才能發揮出真正的能量,一個高效的分支策略的設計必須考慮持續集成和發布的要求,同時兼顧開發流程的有效性。持續集成和持續發布已經成為現代企業級軟件開發的必需品,降低軟件發布過程的成本,減少錯誤,避免失誤,這些都需要CI/CD的配合。但是我們改在怎樣的代碼版本上進行CI/CD,這恐怕是困擾很多人的難題。我見到的大多數團隊的CI/CD都是與某一分支綁定的,這其實一種錯誤的做法,因為這樣你只能在代碼已經進入分支之后才能進行驗證,CI對于代碼質量的驗證成為了馬后炮,無法起到預防的作用;使用Git我們可以針對代碼變更進行預評審,預合并和預構建和發布,讓你更為有效的組織自己的CI/CD流水線。
小結
版本控制系統的優化對于提高軟件開發團隊效率至關重要,充分了解你所使用的版本控制系統的特性并加以利用是每個開發人員都必須掌握的基本能力。
原文地址:http://devopshub.cn/2018/01/02/g4e-basic-1-about-version-control/
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的g4e基础篇#1 为什么要使用版本控制系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DevOps文档中心的技术实践演进
- 下一篇: g4e基础篇#2 Git分布式版本控制系