1.版本控制系統主要用途
協同開發
通常在軟體專案的開發建設程序中,一般會有多名作業人員同時對專案開展作業,那么此時的專案工程不可能是一個獨立的資源,這個時候就需要將專案工程提供給各個作業人員對同一份專案進行操作,
沖突解決
在軟體協同開發的程序中,很有可能出現多名開發人員對同一個功能下的同一檔案進行編輯,由于各自的編輯的內容不同,那么在上傳編輯的內容時就會發生沖突,此時版本控制系統就有一種機制來解決沖突,
版本記錄
每輛車到了一定時間都會有更新換代的時候,軟體專案亦是如此,軟體專案會根據不同業務階段迭代形成不同階段的版本,那么此時就需要版本控制系統來對不同的版本進行記錄,
有版本的記錄我們可以根據不同的使用場景對專案版本進行調度使用,例如專案接入了某個新的功能,在上線后出現了很嚴重的Bug,并且Bug很難再一時之間解決,這個時候為了保險起見不影響正常的業務,通常會要求專案回退到新功能上線前的一個版本,由于版本控制系統的記錄功能,此時我們可以穩定快速的進行版本的回退操作,
歷史追查
專案接入了版本控制,那么任何對專案的操作都會留下痕跡,例如在生產環境出現Bug,我們可以通過版本控制系統查閱開發階段是誰負責撰寫的代碼,以便進行追責,另外也可以用于不同版本之間對代碼的改動進行分析,
分支管理
通常實際專案中,我們的軟體工程檔案不會僅僅只有單獨一份,我們會根據不同的場景將軟體工程檔案劃分為多份,
試想下如果你的專案工程只有一份,當你正如火如荼的開發實作新的需求功能時,在生產環境上出現了Bug需要及時的修復,此時你只能在僅有的一份專案工程中進行Bug修復,但是新開發的功能還沒有完成,這就產生了一個混亂的局面,
所以我們必須對專案工程通過版本控制系統建立不同的分支體系,每個使用場景都是獨立的,不同使用場景之間就不會出現沖突,
2.集中式與分布式
2.1.集中式版本控制系統
結構圖:

集中式實作了大部分開發中對專案版本控制的需求功能,結構簡單,上手容易,另外集中式版本控制系統存在一個很明顯的問題,所有的專案檔案都集中存盤在一臺服務器上,一旦服務器出現問題(崩潰、硬體損壞),那么專案檔案會有丟失的風險,
經典的集中式版本控制系統包括以下:
CVS:很老的系統太過陳舊、簡陋;
VSS:微軟的產品,可視化效果好但并不流行,該工具使用了悲觀鎖,一旦上鎖一個代碼檔案在同一時間只能允許一名開發者操作,其他的開發者要使用必須要等待前一個開發者使用完成解鎖后,開發效率低,
SVN:當下最主流的集中式版本控制系統,
2.2.分布式版本控制系統
結構圖:

Git就是目前世界上最先進、主流的分布式版本控制系統,
與集中式最大的區別:不僅僅使用云服務器托管了專案,在每個專案人員電腦本地都存盤這一份專案倉庫,另外這樣的結構這有兩點好處:
1.即使是托管服務器出現了各種故障,也不會造成專案檔案的丟失;
2.即使是于托管服務器斷開了連接,也可以進行專案的版本控制管理,
3. Git的基本使用
Git安裝程式
鏈接:https://pan.baidu.com/s/1d6S3Eoohfwpnx-jBkQyTww
提取碼:9agh
3.1.設定用戶名和郵箱
操作命令:
git config --global user.name "用戶名"
git config --global user.email "郵箱"
操作參考圖:

另外可以通過“當前用戶”的檔案夾中,找到.gitconfig檔案查看配置的用戶資訊,當然也可以直接通過編輯該檔案修改用戶資訊,如圖:

3.2.創建初始化倉庫
在專案目錄空白處滑鼠右鍵彈出選單串列,在其中點擊選擇“Git Bash Here”,在命令視窗輸入:git init,此時專案就通過Git建立了一個版本庫,并且專案目錄中會創建一個名稱為“.git”的隱藏目錄,
操作參考:

如果專案使用SVN進行版本控制的話,同樣也會創建一個名稱為“.svn”的隱藏目錄,它們兩者的區別:
“.svn”目錄不會因為專案體積的增長而影響自身的體積也過大的增長,該目錄始終都屬于體積很小的目錄,因為“.svn”目錄只會記錄一些版本資訊;
“.git”的隱藏目錄則會因為隨著專案體積的增長而增長自身的體積,因為“.git”目錄相當于一個本地的代碼庫,會存盤著各個版本的源代碼資訊并包括版本資訊,
3.3.提交檔案到版本庫
3.3.1.查看專案狀態
專案通過Git建立版本庫后,可以通過在命令列視窗輸入“git status”來查看當前專案中檔案的控制狀態,操作參考如圖:

上圖在輸入命令后,提示出當前版本庫有一個檔案處于未提交的狀態,
3.3.2.添加操作
操作命令:git add 檔案名
操作參考圖-輸入添加命令后再查看狀態:

通過此命令后新增的檔案僅僅被添加到暫存區,實際上沒有加入到版本庫中,PS:如果需要提交所有檔案,則可以將檔案名替換為*
3.3.3.提交
在命令列輸入:git commit 檔案名 -m “注釋” ,通過此命令后檔案則才會提交到版本庫中,從而才能進行版本的控制,
操作參考圖-輸入提交命令后再查看狀態:

注意:不管是新增或是修改操作,最終都需要進行commit命令操作,
3.4.查看檔案操作記錄
可以通過輸入命令:”git log --pretty=oneline 檔案名”或”git log 檔案名”
3.4.1.”git log 檔案名”—操作參考圖:

3.4.2.操作參考圖-”git log --pretty=oneline 檔案名”:

3.5.版本穿越
用于將當前專案回退到我們指定的版本
第一步,查詢獲取版本標識
操作命令:git reflog

第二步,使用版本標識進行回退
操作命令:git reset --hard 版本標識
![]()
3.6.檔案檢出
用于獲取新檔案或覆寫當前作業副本
操作命令:git checkout 檔案名
3.7.檔案洗掉
通過檔案的物理洗掉是無法直接將版本庫中的檔案刪掉的,需要在對版本庫執行提交命令,
第一步,物理洗掉檔案
第二步,執行提交命令
4.Git檔案區域
作業區
從版本庫檢出存盤在本地硬碟的檔案區域,也叫作業副本用于我們實際開發作業的區域;
本地庫
隱藏目錄.git就是一個本地的代碼倉庫,它會存盤所有版本的檔案資訊,即使和代碼托管的服務器斷開也可以通過本地庫進行版本控制,也可以用于在代碼托管的服務器檔案丟失情況下作為備份,
暫存區
在對檔案進行修改、新增、洗掉時,往往這些操作沒有實際的同步到版本庫,只是將這些操作停留在暫存區,這個時候需要commit命令才能將操作同步到版本庫,
后續詳見第二節.....
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/1001.html
標籤:其他
上一篇:專案人力資源管理
