Android Git 版本控制初識

2021-07-24 19:48:15 字數 1644 閱讀 4250

版本控制是一種記錄乙個或若干檔案內容變化,以便將來查閱特定專案版本的系統。通過版本控制系統,可以為每個版本建立乙個快照,並且填寫相關的記錄資訊,這樣便於你後續回退到這個版本。而你所有的修改,提交都會在版本系統中留下記錄,這樣就有更多的資訊能夠定位特定的版本。

git屬於分布式版本控制系統,是目前世界上最先進的分布式版本控制系統,它的特點是簡單易用,功能強大,速度快。分布式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過轉殖(git clone),在本地機器上拷貝乙個完整的git倉庫。

git與其他版本控制系統的差別是它在客戶端並不只提取最新版本的檔案快照,而是把整個專案倉庫完整地映象下來。這樣一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何乙個映象出來的專案倉庫恢復。因為每一次的提取操作,實際上都是一次對**倉庫的完整備份。

git和其他版本控制系統的主要差別在於,git只關心檔案資料的整體是否發生變化,而大多數其他系統則只關心檔案內容的具體差異。這些系統(cvs,subversion,perforce,bazaar等)每次記錄有哪些檔案作了更新,以及都更新了哪些行的什麼內容。

git並不儲存這些前後變化的差異資料。實際上,git更像是把變化的檔案做快照後,記錄在乙個微型的檔案系統中。每次提交更新時,它會縱覽一遍所有檔案的指紋資訊並對檔案做一快照,然後儲存乙個指向這次快照的索引。為提高效能,若檔案沒有變化,git不會再次儲存,而只對上次儲存的快照做一鏈結。

在git中的絕大數操作都只需要訪問本地檔案和資源,不需要連線網路。因為git將當前專案的歷史更新都儲存在本地磁碟上,所以在處理速度上要比其他依賴於網路的系統快得多。

如果要瀏覽專案的歷史更新摘要,git不用到外面的伺服器上去取資料回來,而直接從本地資料庫讀取後展示給你看。如果想要看當前版本的檔案和乙個月前的版本之間有何差異,git會取出乙個月前的快照和當前檔案作一次差異運算,而不用請求遠端伺服器來做這件事,或是把老版本的檔案拉到本地來做比較。

對於任何乙個檔案,在git內都只有3種狀態:已提交(committed),已修改(modified),已暫存(staged)。

已提交表示該檔案已經被安全地儲存在本地資料庫,即執行了git commit命令;

已修改表示修改了某個檔案,但還沒有提交儲存;

已暫存表示把已修改的檔案放在下次提交時要儲存的清單中,即執行了git add命令。

git在管理專案時,檔案流轉有3個工作區域:git的工作目錄,暫存區域和本地倉庫。

每個專案都有乙個git目錄(隱藏的.git目錄),它是git用來儲存元資料和物件資料庫的地方。每次轉殖映象倉庫時,實際複製的就是這個目錄裡面的資料。

git對某個目錄進行版本控制,那麼這個目錄就叫做工作目錄。這些檔案實際上都是從git目錄中的壓縮物件資料庫中提取出來的,接下來就可以在工作目錄中對這些檔案進行編輯。所謂的暫存區域只不過是個簡單的檔案,一般都放在git目錄中。

基本的git工作流程如下:

(1)在工作目錄中修改某些檔案

(2)對修改後的檔案進行快照,然後儲存到暫存區域

(3)提交更新,將儲存在暫存區域的檔案快照永久轉儲到git目錄中

版本控制 設計模式 模式版本控制

版本控制 設計模式 schema versioning changing a namespace is not versioning,it is new type creation.meta douglasp 架構版本控制 更改命名空間不是版本控制,而是建立新型別。meta douglasp ok....

SVN版本控制

1.svn安裝 sudo apt get install subversion 2.建立倉庫 對於多個 倉庫 首先在 var 下建立svn主目錄。svnadmin create var svn test1 svnadmin create var svn test2 3.修改配置檔案 倉庫目錄下 co...

走入《版本控制》

mkdir test cd test git init 建立空的本地倉庫 echo hello,world readme.txt 將標準輸出重定向到readme.txt git add 表示當前目錄下所有檔案git本地倉庫的暫存區 stage or index git commit m first ...