您好,登錄后才能下訂單哦!
源代碼管理工具Git的工作原理是什么?針對這個問題,今天小編總結這篇有關Git的文章,希望幫助更多想解決這個問題的同學找到更加簡單易行的辦法。
Git是什么?GIT分布式版本控制系統,Git是一個免費的、分布式的版本控制工具,或是一個強調了速度快的源代碼管理工具。Git被LinusTorvalds開發出來用于管理Linux內核的開發。每一個Git的工作目錄都是一個完全獨立的代碼庫,并擁有完整的歷史記錄和版本追蹤能力,不依賴網絡和中心服務器。
Git出現減輕開發者和開源項目對于管理分支代碼的壓力,由于對分支的良好控制,更鼓勵開發者對項目做出貢獻。許多開源項目包括Linuxkernel,Samba,X.orgServer,RubyonRails,都已經過渡到使用Git作為版本控制工具。在任何地點提交自己的代碼和查看代碼版本;可以開諸多個分支來實踐自己的想法,而合并這些分支的開銷可以忽略不計。接下來了解下什么是版本控制?
一、本地版本控制系統
許多人習慣用復制整個項目目錄的方式來保存不同的版本,或許還會改名加上備份時間以示區別。這么做唯一的好處就是簡單。不過壞處也不少:有時候會混淆所在的工作目錄,如果弄錯文件丟了數據就沒法撤銷恢復。為了解決這個問題開發了許多種本地版本控制系統,大多都是采用某種簡單的數據庫來記錄文件的歷次更新差異
其中最流行是rcs,許多計算機系統上有應用。在流行的MacOSX系統上安裝了開發者工具包后可以使用rcs命令。工作原理基本上就是保存并管理文件補丁。文件補丁是一種特定格式的文本文件,記錄著對應文件修訂前后的內容變化。根據每次修訂后的補丁,rcs可以通過不斷打補丁,計算出各個版本的文件內容。
二、集中化的版本控制系統
如何讓在不同系統上的開發者協同工作?于是,集中化的版本控制系統CVCS應運而生。這類系統,諸如CVS,Subversion以及Perforce等,都有一個單一的集中管理的服務器,保存所有文件的修訂版本,而協同工作的人們都通過客戶端連到這臺服務器,取出最新的文件或者提交更新。多年以來,成為版本控制系統的標準做法。
集中化的版本控制系統許多優勢,相較于老式的本地VCS來說。每個人都可以在一定程度上看到項目中的其他人正在做些什么。而管理員也可以輕松掌控每個開發者的權限,并且管理一個CVCS要遠比在各個客戶端上維護本地數據庫來得輕松容易。
缺點是中央服務器的單點故障。如果宕機一小時,誰都無法提交更新,也就無法協同工作。要是中央服務器的磁盤發生故障,碰巧沒做備份,或者備份不夠及時,就還是會有丟失數據的風險。最壞的情況是徹底丟失整個項目的所有歷史更改記錄,而被客戶端提取出來的某些快照數據除外,但這樣的話依然是個問題,你不能保證所有的數據都已經有人事先完整提取出來過。本地版本控制系統也存在類似問題,只要整個項目的歷史記錄被保存在單一位置,就有丟失所有歷史更新記錄的風險。
三、分布式版本控制系統:
分布式版本控制系統DVCS。在這類系統中像Git,Mercurial,Bazaar以及Darcs等,客戶端并不只提取最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來。這么一來,任何一處協同工作用的服務器發生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復。因為每一次的提取操作,實際上都是一次對代碼倉庫的完整備份
這類系統指定和若干不同的遠端代碼倉庫進行交互。在同一個項目中分別和不同工作小組的人相互協作。根據需要設定不同的協作流程,比如層次模型式的工作流,而這在以前的集中式系統中是無法實現的。
以上就是源代碼管理工具Git的工作原理的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。