師洛蓓
[摘 要] 近年來,隨著我國社會科技及計算機技術的發(fā)展,軟件工程領域也得到了快速的發(fā)展。現(xiàn)階段,在軟件開發(fā)項目管理中合理運用版本控制工具能夠促使軟件開發(fā)工程高質量、高效率的完成?;诖?,文章主要研究版本控制工具在軟件開發(fā)項目管理中的應用,希望對相關人員有所啟示。
[關鍵詞] 版本控制工具;軟件開發(fā)工程;Git版本控制系統(tǒng);Gitee托管平臺
中圖分類號: G221? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-1722(2021)16-0074-03
在軟件開發(fā)工程管理的過程中,難度最大的便是對龐大數(shù)據(jù)的管理,而版本控制工具的使用能夠幫助軟件開發(fā)工程提高對數(shù)據(jù)的管理水平。由此可見,版本控制工具在軟件開發(fā)項目管理中具有十分重要的應用價值,而加強對軟件開發(fā)項目管理中版本控制工具的研究,對于促使軟件開發(fā)項目順利完成具有十分重要的現(xiàn)實意義。
一、版本控制概述
(一)版本控制內涵
版本控制是指可以記錄一個或多個文件在修改過程中的變化,使得后續(xù)可以查閱文件的歷史版本的技術[1]。相關工作人員運用版本控制便可獲取版本的歷史數(shù)據(jù)信息,當版本存在問題時便可在歷史數(shù)據(jù)信息上做出改正;而想要添加新功能時,也可在歷史數(shù)據(jù)信息上進行操作。
(二)版本控制操作
版本控制的操作主要包括版本的生產(chǎn)、版本的提交、版本的審核、版本的修改、版本的提取、版本的比較及版本的合并。軟件開發(fā)工程項目在使用版本控制工具時,必須按照流程進行操作,才能夠促使版本控制工具能夠在軟件開發(fā)工程中發(fā)揮其作用與價值。圖1為版本控制操作流程圖。
(三)版本控制優(yōu)勢
首先,版本控制能夠方便代碼管理,尤其是分布式版本控制系統(tǒng),能夠利用版本代碼托管平臺實現(xiàn)對文件代碼的自動管理[2]。其次,版本控制具有自動化的功能,且能夠加強訪問控制,這對于保障代碼數(shù)據(jù)的安全性是尤為重要的。最后,版本控制能夠實現(xiàn)分工和并行,便于軟件工程實行多人協(xié)同作業(yè),這對于提高軟件工程的工作效率是十分重要的[3]。
二、版本控制工具在軟件開發(fā)項目管理中的應用——以Git為例
(一)Git概述
Git版本控制屬于分布式版本控制系統(tǒng),于2005年被Linus Torvalds首次提出并運用。該版本控制工具具有簡便、開源、速度快、保護數(shù)據(jù)完整性的優(yōu)勢,故而在現(xiàn)階段被我國軟件工程項目所喜愛,并在軟件開發(fā)項目當中被大量使用[4]。
Git版本控制系統(tǒng)具備強大的分支管理能力,這也是Git版本控制系統(tǒng)最具特色的功能之一。其不僅能夠支持大量的分支同步運行,還可以支持上千的分支同步進行維護與開發(fā),同時,在分支處理的過程中還不會影響主支的正常使用。這就能夠保證軟件工程項目在進行分支的修改時,軟件仍然可以正常使用。當軟件在使用過程中或在軟件開發(fā)的階段發(fā)現(xiàn)軟件的功能存在問題時,軟件工程相關工作人員能夠利用Git版本控制系統(tǒng)直接找到問題的誘發(fā)原因或問題存在的根本原因是存在哪一個軟件版本之中,以便于后續(xù)對問題版本進行修改。同時,軟件開發(fā)工程項目相關工作人員還可以利用Git版本控制系統(tǒng)針對軟件的測試與修改創(chuàng)建一個新的分支,該軟件新增的功能均可以在該分支上完成測試,而測試通過之后也可以直接匯入主支當中被使用,且由于Git版本控制系統(tǒng)各個分支均具備不同的功能,分支與分支之間、分支與主支之間的功能是互不干擾的,可以說各個分支在Git版本控制系統(tǒng)中是一個獨立的存在,故而當后期發(fā)現(xiàn)并不需要使用某一分支的功能時,便可直接去除該分支,而這并不會對軟件的正常使用帶來影響。
此外,Git系統(tǒng)控制工具采用的是快照模式??煺漳J街饕轻槍?shù)據(jù)信息的記錄,傳統(tǒng)的軟件開發(fā)工程項目的信息記錄主要是通過記錄不同階段的數(shù)據(jù)判斷數(shù)據(jù)之間的差距從而達到分析數(shù)據(jù)的目的,而快照模式并不需要主動對數(shù)據(jù)信息進行記錄,而是在數(shù)據(jù)變動的各個階段記錄影像。該種模式相比于傳統(tǒng)的信息記錄模式而言更加便捷且節(jié)省時間。
(二)Git工作原理
首先,軟件開發(fā)工程項目工作人員需要先建立一個工作區(qū)間,該工作區(qū)間是在本地上建立的一個工程空白文件,并在該文件內增加實現(xiàn)軟件功能指令的信息,生成工程文件,隨后將工程文件增加到暫存區(qū),在該區(qū)域內可完成工程文件的代碼生成、代碼管理及代碼沖突解決等問題。隨后,將文件代碼提交到本地倉庫,連接本地代碼跟遠程代碼,并將本地倉庫推送至遠程倉庫。遠程倉庫是指針對軟件開發(fā)工程建立的一個代碼托管平臺,通常情況下選擇Gitee平臺,以實現(xiàn)對代碼的保存。
(三)Git功能特點
Git版本控制系統(tǒng)能夠促使版本庫本地化,從上文分析可知,軟件開發(fā)工程項目相關工作人員在進行完文件的制作之后,是需要優(yōu)先將文件保存至本地倉庫,經(jīng)過修改、完善且無代碼沖突的情況下才能夠推送至中心服務器,說明大部分文件數(shù)據(jù)還是存儲在工作人員的本地倉庫當中,從而實現(xiàn)文件資源的版本庫本地化。通常情況下,在Git的支持下,軟件開發(fā)工程相關工作人員的文件查詢、修改及刪除等工作均是基于本地倉庫上來完成的,并未給中心服務器帶來影響,也保證了中心服務器可以正常地工作。同時,版本庫本地化能夠優(yōu)化工作人員的工作,工作人員不必第一時間將文件提交到中心服務器,故當網(wǎng)絡環(huán)境不通暢時,工作人員依舊可以將文件上傳至本地的數(shù)據(jù)庫,受網(wǎng)絡波動的影響較小。
(四)Git在團隊協(xié)作中的使用
現(xiàn)階段,很多大型的軟件開發(fā)工程項目需要多個工作人員一同對軟件功能進行開發(fā),且需要對相關工作人員的工作進行分工并需要同步進行,而此時,Git版本控制系統(tǒng)便可幫助軟件開發(fā)工程的相關工作人員協(xié)作完成工作任務。當工作人員完成某一項任務或正在進行某一項任務時,Git版本控制系統(tǒng)便可將已完成或正在進行的文件生成一個代碼,當其他工作人員需要使用到相關數(shù)據(jù)信息時,便可根據(jù)代碼查詢數(shù)據(jù)內容,同時也可對代碼文件內容進行修改,且能夠完成多個版本分支的協(xié)同開發(fā)與維護。
在軟件開發(fā)工程開啟之前,需要每一位軟件開發(fā)工作團隊成員在Gitee上注冊一個賬號,并生成屬于自己的SSH Key。Gitee是一種代碼托管平臺,軟件開發(fā)的過程中,每完成一項工作任務都會將文件生成代碼以便于保存管理與后續(xù)的應用,而Gitee平臺便是對文件代碼自動管理的托管平臺,在該平臺上,團隊成員能夠實現(xiàn)文件的相互傳遞,以便于軟件開發(fā)工程的順利進行。隨后,團隊的每一位成員需要在自己使用的計算機上建立一個項目倉庫,該項目倉庫是成員存儲自己工作任務文件的,且各個成員的項目倉庫是需要在Gitee上實現(xiàn)遠程相關聯(lián)的。關聯(lián)方法便是成員在自己注冊的Gitee平臺上添加其他成員的SSH Key,從而實現(xiàn)項目倉庫信息資源的傳遞與共享。當團隊某個成員獲取到其他成員的項目倉庫信息時,便可克隆、復制到本地項目倉庫中,隨后根據(jù)自己軟件分支的功能對文件進行修改,再利用“git push”指令將文件存儲至Git倉庫,若在存儲過程中發(fā)現(xiàn)文件代碼沖突,則需要及時解決。在解決的過程中,需要優(yōu)先解決本地文件。
文件代碼沖突是軟件開發(fā)工程項目中常遇到的問題。當發(fā)現(xiàn)文件代碼沖突時,軟件開發(fā)工程項目相關工作人員應及時解決,否則很容易導致文件丟失,致使開發(fā)出來的軟件存在功能缺失,這對軟件開發(fā)工程項目的工程質量有著十分惡劣的影響。當發(fā)生文件代碼沖突時,Git版本控制系統(tǒng)便會給予軟件開發(fā)工程項目工作人員提示,并告知工作人員兩個沖突代碼的分支,以便于相關工作人員及時發(fā)現(xiàn)和解決,通常情況下解決的辦法為手動修改文件。
三、版本控制工具在軟件配置管理中的應用
(一)Git版本控制系統(tǒng)的工作區(qū)域
首先,從Git版本控制系統(tǒng)工作區(qū)域的角度來分析。Git版本控制系統(tǒng)的工作區(qū)主要包括Git倉庫、工作目錄及暫存區(qū)域。Git倉庫是指軟件開發(fā)工程項目的所有數(shù)據(jù)資料的存儲之處。在Git版本控制的支持下,Git倉庫能夠實現(xiàn)對軟件開發(fā)工程項目數(shù)據(jù)資料的保護,以保證數(shù)據(jù)不丟失、泄露,從而提高整個Git版本控制系統(tǒng)的安全性。同時,Git版本控制系統(tǒng)中有一個“git clone”指令,該指令是克隆、復制Git系統(tǒng)內任意數(shù)據(jù)的指令,該指令能夠實現(xiàn)對多臺計算機的倉庫進行克隆、復制,從而幫助相關工作人員順利完成數(shù)據(jù)資料獲取的任務。Git版本控制系統(tǒng)中工作目錄的主要作用是引導操作人員順利找到想要搜索的文件,其中包含的內容較多,可以從其他軟件工程項目提取相關的數(shù)據(jù)信息,并以壓縮的形式形成了一個壓縮數(shù)據(jù)庫,保存在本地的磁盤當中,而當操作人員想要找尋某個軟件工程項目的數(shù)據(jù)信息時,便可根據(jù)目錄文件名稱的提示尋找到壓縮的軟件工程項目數(shù)據(jù)信息。暫存區(qū)域是指文件暫時存儲的位置。通常情況下,使用暫存區(qū)域的文件均是在不久之后需要提交的文件,而暫存區(qū)域能夠給予這些文件暫時存儲的位置,以便于在文件提交時順利找到文件。就目前情況而言,Git版本控制系統(tǒng)的大部分暫存區(qū)域被普遍設置于git directory中。
(二)Git版本控制系統(tǒng)的分支與合并功能
其次,從Git版本控制系統(tǒng)中分支與合并的角度來分析。Git版本控制系統(tǒng)的分支功能是指在軟件版本開發(fā)的過程中,主支還能夠正常使用,這就使得軟件的使用并未受到影響,而軟件工程項目可以在分支對軟件系統(tǒng)進行開發(fā),且在開發(fā)的過程中,能夠隨時切換版本進行操作。幫助軟件工程項目實現(xiàn)在同一時間、不同版本的軟件開發(fā),而開發(fā)完成的軟件分支還能夠融合到主支上,實現(xiàn)了在不影響軟件正常使用的前提下完成軟件的開發(fā),并達到幫助軟件增加新功能或提高軟件穩(wěn)定性的目的。
(三)Git版本控制系統(tǒng)的文件狀態(tài)
最后,從Git版本控制系統(tǒng)中文件狀態(tài)的角度來分析。總體而言,Git版本控制系統(tǒng)中的文件主要包括兩種狀態(tài),一種是需要相關工作人員修改的被跟蹤狀態(tài);一種是完成修改或無須修改的未跟蹤狀態(tài)。從被跟蹤狀態(tài)的角度來分析,被跟蹤狀態(tài)的文件也分為三種:修改狀態(tài)、未修改狀態(tài)和暫存狀態(tài)。未修改狀態(tài)是指需要被修改但是軟件工程工作人員并未對其進行修改的文件。修改狀態(tài)是指正在被軟件工程工作人員修改處理的文件,修改完成之后無須進行下一步修改,文件會自動提交并轉變成未跟蹤狀態(tài);而修改完成之后還需要進行下一步修改的文件則處于暫存狀態(tài),以便于相關工作人員繼續(xù)進行修改。通常情況下,需要轉入暫存區(qū)域的文件是通過“git add”“git commit”及“git push”三個指令來完成的。首先,修改完成之后還需要進行下一步修改的文件再接收到“git add”指令之后,文件將會自動轉移到轉存區(qū)域,并在“git commit”指令下,將轉存區(qū)域的未完成全部修改的文件轉移到Git倉庫內的暫存區(qū)域,而“git push”的主要功能則是記錄未完成全部修改的文件,從而加強對文件的管理,避免在修改過程中存在漏修改的問題。圖2為未完全修改文件狀態(tài)跟蹤流程圖。
四、結語
綜上所述,Git是現(xiàn)階段我國軟件開發(fā)工程常用的版本控制工具,Git系統(tǒng)屬于分布式版本控制系統(tǒng),由于本身具備強大的分支管理能力,使得軟件開發(fā)工程更加便捷。同時,對于一些大型軟件開發(fā)工程項目而言,其可以幫助項目實現(xiàn)良好的協(xié)同工作,且在進行的過程中,Gitee托管平臺能夠幫助其實現(xiàn)良好的文件信息存儲與管理工作,促使軟件開發(fā)工程的順利完成。
參考文獻:
[1] 王真.版本控制工具在軟件開發(fā)項目管理中的應用——以GIT為例[J].項目管理技術,2020,06(10):147-149.
[2] 田江濤.基于git工具的多分支并行開發(fā)上線流程[J].電子技術與軟件工程,2019,03(20):157-158.
[3] 孫德剛.基于SVN版本控制的教務信息管理系統(tǒng)開發(fā)與實現(xiàn)[J].現(xiàn)代信息科技,2020,06(10):111-113.
[4] 陳肖彬.版本控制系統(tǒng)Git在信息化校園中的簡單應用[J].現(xiàn)代計算機,2019,11(15):99-102.