999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件配置管理中版本控制的研究

2019-10-08 09:01:51秦佳
軟件 2019年3期

秦佳

摘? 要: 介紹了軟件配置管理及版本控制的基本概念,解釋了版本控制在軟件開發過程中的重要性。分析了兩種不同的版本控制方式,引出目前最熱門且最具潛力的Git版本控制系統。簡要介紹了Git,并詳細講解了Git的工作區域、文件狀態、分支和融合。

關鍵詞: 版本控制;Git;版本控制系統;軟件配置管理

【Abstract】: The basic concepts of software configuration management and version control are introduced, and the importance of version control in the software development process is explained. Two different version control methods were analyzed to bring out the most popular and promising Git version control system. A brief introduction to Git and a detailed explanation of Git's workspace, file status, branching, and merging.

【Key words】: Version control; Git; Version control system; Software configuration management

0? 引言

經歷了軟件危機之后,軟件開發人員越發的重視起軟件工程的重要性,并把它當做一門專門的學科進行研究,提出了許多工程化的概念。在軟件開發過程中經常會產生大量的文檔與代碼,且需求的不確定性決定了開發人員需要經常性的迭代與修改項目文件,這產生了許多冗余的文檔管理工作。

本文就軟件配置管理進行探討,給開發人員介紹了一種簡便、高效的版本控制系統,使開發人員能夠付出最小的代價,對開發過程中的變更進行合理記錄與控制。

1? 版本控制

1.1? 基本概念

在軟件工程領域中,軟件配置管理(Software configuration management)用來跟蹤和控制軟件中的變更,它屬于更大的跨學科概念:配置管理(Configuration management)。

版本控制(Version Control),又有別名為Revi sion Control或Source Control,它屬于軟件配置管理(Software configuration management)的一部分,是對文檔、程序、大型網站或其他信息集合變化的一種管理。在軟件工程領域中,版本控制可以是任何與跟蹤歷史與控制源代碼變化有關的實現。開發人員不光會用版本控制軟件維護源代碼,還會用它來維護項目相關文檔和配置文件,實際上你可以對任何類型的文件進行版本控制。

1.2? 版本控制的重要性

(1)如今,軟件的開發幾乎都是團隊合作,在團隊設計、開發和部署軟件時,通常會將同一軟件的不同的版本部署在不同的站點中并讓軟件開發人員同時進行更新處理。軟件的漏洞通常出現在某些版本中,出于定位和修補漏洞的目的,能夠檢索和運行不同版本的軟件來決定是哪個版本出了問題是很重要的。

(2)軟件的開發很多都是迭代式的,也就有很多不同版本的程序副本。之前的做法是簡單的把所有副本都存儲起來,并為他們標上不同的版本號。雖然這種方法可行,但它也有著許多的缺點:第一,這種存儲方式十分低效。它需要開發者十分小心的將每個版本都標清并存儲,通常版本的迭代數會十分的龐大,隨著時間推移,這會導致許多錯誤。第二,這種存儲方式會增加開發人員的重復工作。因為代碼庫是相同的,它需要像開發人員授予讀寫權限,這無疑增加了管理權限人員的壓力。因此,出于減少重復工作和錯誤的目的,需要一種能自動化進行版本控制的系統。

(3)軟件的開發更多的需要團隊成員之間的合作,不同的團隊成員編輯同一個文檔或者代碼變得越來越普遍,團隊成員在空間上可能分散,在時間上也可能不同,且有著不同甚至相反的興趣和擅長的工作。因此,能夠給這些完全不同的團隊成員提供一個可以跟蹤和記錄文檔與代碼更改的系統是十分有用且必不可少的。

1.3? 集中式版本控制

集中式版本控制(Centralized version control),為不同系統的開發者提供了協同工作的可能。它的特點是擁有一個單一集中的服務器,保存了所有項目文件的修訂版本,不同系統的開發者通過“check out”取出最新的文件,可以對它進行修改之后把更新提交到服務器。大多數版本控制允許多個開發者同時修改同一個文件,許多版本控制系統提供自動便捷的“merge”功能融合無沖突的更新。

但集中式版本控制最大的缺點就在于它對服務器的依賴性。如果服務器故障,當機半天,那么在這半天內,無論哪個客戶端都無法提交更新。如果中心數據庫出現損壞,而沒有做好備份準備,那么就會丟失所有的數據,只剩下各個客戶端的不同版本,十分不利于軟件項目的開發。

1.4? 分布式版本控制

分布式版本控制(Distributed Version Control),很好的解決了集中式版本控制對服務器的依賴帶來的問題。這類版本控制的客戶端不只提取最新版本的文件快照,而是把中央代碼倉庫(Repository)完整的鏡像下來。這樣每一個客戶端都擁有完整的代碼倉庫備份,就算中央服務器宕機了,它的所有數據都可以幾乎無損的從任意一個客戶端中恢復。

2? 版本控制系統

2.1? Git基本概念

Git是一種分布式版本控制系統,也就是說它擁有以上介紹的分布式版本控制的所有特點,它免費且開源,目前被廣大開發者所使用且十分受歡迎。Git用于跟蹤文件中的變更,它的設計目標包括:速度,簡單設計,完全分布式,對非線性開發的支持,處理像Linux內核這樣大型項目的能力。

2.2? Git的工作區域和文件狀態

我們在使用Git時,主要打交道的有三個工作區域:Git倉庫(Git directory或Repository),工作目錄(Working directory)以及暫存區域(Staging area)。

(1)Git倉庫是用來保存項目數據和數據庫的地方,這是Git中最重要的部分。Git中有一個git clone命令,可以克隆其他計算機的倉庫,這里拷貝的內容就是Git倉庫中的數據。

(2)工作目錄是對項目某個版本提取出來的內容,它是從Git倉庫的壓縮數據庫中提取出的文件,放在本地磁盤供開發人員使用或修改,可以把它理解為你本次磁盤上的項目拷貝文件。

(3)暫存區域是一個文件,它保存的是下次將要提交的文件列表信息,一般在git directory中。

在Git中,工作目錄中的每個文件都無外乎兩種狀態:跟蹤的(tracked)或者未跟蹤的(untracked)。跟蹤的文件是git知道的并且“跟蹤的”。跟蹤的文件可能會處于未修改(unmodified)、修改(modified)或暫存(staged)狀態。跟蹤的文件也就納入了版本控制的范疇,你在它上面所做的所有修改都會被Git記錄,如果你修改了文件內容,它就會處于修改狀態。這時如果你想記錄這次更改,就可以使用git add命令將它加入到暫存區域,之后可以用git commit命令將這次更改操作提交到Git倉庫,最后通過git push將這個commit記錄到遠程服務器上。

從以上操作也可以看出Git分布式版本控制系統的優點:它大部分操作都在本地,只需要在有機會聯網時將之前所暫存的commit從Git倉庫中發布到遠端服務器就可以完成工作,十分高效且不依賴網絡。

2.3? Git分支與融合

Git的分支(Branching)是它最杰出的功能,開發者可以利用分支功能實現多版本同時開發且隨時可切換當前工作的不同版本,并在適當的時候把新增的分支特性融合(Merging)到主分支(通常為穩定代碼)中,這樣就可以實現不改變當前穩定版本而增加特性分支實踐新特性的功能,這對大型復雜項目十分有幫助。

實際上,Git的分支是一個指向提交對象的可變指針。它的默認名字是master。每當你提交(commit)了一個對象時,它就會自動向前移動,指向最后一個提交對象。

創建分支十分簡單,只需要使用git branch命令再加上分支名就可以在當前所在的提交對象上創建一個新分支。Git中還有一個叫HEAD的特殊指針,它指向當前所在的本地分支,通過git checkout命令就可以隨時切換當前所工作的分支(也就是改變HEAD指針的指向分支)。通過Git的分支特性,你可以將穩定的版本放在master主分支上,如果開發過程中出現漏洞需要修復或有不確定的新功能需要測試,都可以在當前的版本基礎上新建一個分支,它的本質是一個指針,就會指向之前的提交對象,也就擁有穩定版本的全部提交歷史,在此基礎上,就可以在不破壞主分支的前提下安全的測試新功能或修復漏洞。

3? 結語

利用版本控制,極大減少了軟件項目開發者冗余工作,且跟蹤版本歷史記錄有利于軟件項目的迭代與發展,在軟件工程中起著舉足輕重的作用。學會使用一種版本控制系統,會加快軟件項目的開發進度,并降低系統漏洞的風險。Git的免費與開源正逐步的吸引著世界各地的優秀軟件人才,Github就是一個很好的開源平臺。學會使用正確的工具,也會最大限度的發揮人在項目管理中的作用,Git版本控制系統具有的潛力不可小覷。

參考文獻

[1]Scott Chacon. Pro Git[M]. Apress: 2009-09-30.

[2]陳申平. 敏捷軟件開發中的配置管理探討[J]. 軟件, 2018, 39(05): 134-138.

[3]攸陽, 楊素梅. 軟件配置管理在軍用軟件中的應用[J]. 軟件, 2018, 39(06): 85-88.

[4]楊瑞虹, 劉旺開, 霍振宇. 軟件配置管理中的版本控制工具[J]. 計算機時代, 2005(02): 8-9.

[5]王海豐, 李金霞, 張鯤. 基于SVN版本控制的程序設計類課程教學研究[J]. 軟件, 2018, 39(04): 218-221.

[6]路志, 戴志濤. 版本控制系統在嵌入式系統實驗中的應用[J]. 軟件, 2014, 35(11): 86-90.

[7]譚政. 一種協同編輯中版本控制與管理解決方案[J]. 軟件, 2014, 35(11): 118-123.

[8]字鳳芹. 基于Git的協作小組學習資源庫的建設與研究[D]. 云南大學, 2016.

[9]劉悅之. 基于Git的分布式版本控制系統的設計與實現[J]. 科技傳播, 2012, 4(22): 197-198.

[10]GitHub與社會化編程[J]. 硅谷, 2012(06): 51.

[11]張智, 鄭卉, 蔣依伶, 袁歡歡, 鄭明清. 使用Github實現高效的團隊協作開發[J]. 電腦知識與技術, 2015, 11(07): 206-208.

主站蜘蛛池模板: 最新无码专区超级碰碰碰| 老司机久久99久久精品播放| 又黄又湿又爽的视频| 欧美国产菊爆免费观看| 久久频这里精品99香蕉久网址| av天堂最新版在线| 亚洲香蕉在线| 久久这里只有精品国产99| 精品福利视频导航| 久久99蜜桃精品久久久久小说| 亚洲中文无码av永久伊人| 亚洲精品少妇熟女| 国产18在线播放| 欧美一级在线看| 99国产精品国产高清一区二区| 亚洲av日韩综合一区尤物| 亚洲日韩日本中文在线| 亚洲一区二区视频在线观看| 国产激情第一页| 日韩美女福利视频| 国产爽妇精品| 性69交片免费看| 91久久国产热精品免费| 色婷婷狠狠干| 天天综合色网| 亚洲综合亚洲国产尤物| 国产精品尹人在线观看| 无码免费视频| 超碰91免费人妻| 91在线高清视频| 天天综合网色中文字幕| 91系列在线观看| 久久99精品久久久久纯品| 91精品久久久无码中文字幕vr| 日本精品αv中文字幕| 国产91小视频| 国产99精品久久| 天天视频在线91频| 毛片基地视频| 国产精品真实对白精彩久久 | 国产真实自在自线免费精品| 久久亚洲国产最新网站| 99精品欧美一区| 国产偷国产偷在线高清| 狠狠ⅴ日韩v欧美v天堂| 成人精品区| 夜夜操国产| 99久久精品国产精品亚洲| 美女无遮挡拍拍拍免费视频| 亚洲天堂视频网站| 91年精品国产福利线观看久久| 国产Av无码精品色午夜| 久久久精品无码一二三区| 国产成人久久777777| 国产亚卅精品无码| 日韩欧美中文| 亚洲第一视频网站| 天天躁夜夜躁狠狠躁图片| 欧美亚洲日韩中文| 凹凸国产熟女精品视频| a国产精品| 久久黄色毛片| 2022精品国偷自产免费观看| 亚洲成人黄色网址| 乱人伦中文视频在线观看免费| 天堂成人av| 精品国产电影久久九九| 亚洲AV无码久久天堂| 国产农村妇女精品一二区| 真人免费一级毛片一区二区| 亚洲精品少妇熟女| 91视频日本| 亚洲欧美在线综合一区二区三区| 国产一区成人| 精品亚洲欧美中文字幕在线看| 97超级碰碰碰碰精品| 亚洲成人精品在线| 午夜啪啪网| 国产精品无码作爱| 国产亚洲视频免费播放| 日本亚洲国产一区二区三区| 国产视频欧美|