GIT操作基本詳解(1)

2021-06-27 01:59:56 字數 2031 閱讀 5574

現在的版本控制系統中,git的人氣越來越高,可能是因為git是鼎鼎大名的大神linus所寫。最近在學習《版本控制之道——使用git》,打算寫一寫讀書筆記,也順便讓跟我一樣剛接觸的朋友一起來學習。

1. git概述

版本控制系統(version control system, vcs)是用來幫助我們記錄和追蹤專案中各個檔案的變化。傳統的vcs有我們熟知的cvs,svn。有傳統當然有新穎的,git就是這樣一種新穎的版本控制系統,簡單來說: git是一種分布式版本控制系統(distributed version control system, dvcs)。dvcs跟傳統的vcs的區別就在於互相同步修改內容的方式不同。

下面我們將一步一步地逐漸認識git。

2. 版本庫

版本庫(repository)是版本控制系統用來儲存所有歷史資料的地方。比如說,儲存檔案的當前狀態,歷史修改時間,修改人員,修改原因等等。你可以把它想象為乙個監控系統,只要你對裡面的東西做過什麼動作,它都記錄得清清楚楚。

cvs和svn這類版本控制系統屬於集中是版本庫模式,就是說,所有人都會把各自的修改提交到伺服器上的乙個公共版本庫,而他們在本地也有乙個工作目錄樹(待會再解釋),其內容就是版本庫中最新的**。如果要查詢歷史,就得詢問伺服器上的版本庫,這往往就需要網路,而我們知道,不是任何時候都可以上網,這就是侷限性。

如果你使用的是git,那麼這個問題就解決了,因為git是分布式版本控制系統,所以你在本地會有自己的版本庫,你的所有歷史都儲存在本地的版本庫中。所以提交**無須連線遠端版本庫,而是直接儲存在本地版本庫上面了。那麼這裡你可能有疑問:程式設計師如何同步?當然,還是要將修改上傳到專案的主版本庫,以後慢慢再學習。

3. 工作目錄樹

剛才提到過這個概念。什麼是工作目錄樹(working tree)?工作目錄樹是版本庫的乙個「檢視」,包括這個專案中所有的檔案。這裡要區分好版本庫跟工作目錄樹。在git中,版本庫是儲存在本地工作目錄樹的「.git」目錄中(具體之後再講)。而工作目錄樹是怎麼來的?兩種方法:一是初始化命令,二是轉殖乙個版本庫,這些以後具體再說。簡單說,就是你通過這兩種方法中任何一種,生成了乙個工作目錄樹,其中有乙個目錄叫「.git」,這個目錄就是版本庫。也不複雜吧:)

4. git記錄跟蹤專案的方法

許多版本控制系統都是以檔案為儲存單位來儲存,但是git只是記錄和跟蹤組成該檔案的各部分內容:若干字元和**行。 git同時為這些內容新增了一系列元資料,比如檔名,檔案屬性等等。 git使用這種方法就降低了所需的磁碟空間了。這部分內容現在聽起來會比較亂,我們以後再慢慢補充。

5. 標籤

在你的專案中,一定有某乙個點你需要作乙個標記,比如說,你想發布乙個版本。這時候也許你就要用到標籤了,你可以為你的專案貼個標籤,例如乙個版本號,然後把你專案中所有**都打包起來。

6. 分支與合併

假定你停留在乙個問題上,想嘗試編寫**解決這個問題,但是很有可能這個方法行不通,又怕到時候修改了**恢復難。這個時候分支可以幫你解決問題。你可以在主幹上建立一條新的分支,用這條分支來作為嘗試,在這條分支上面修改**,當然,這上面的修改並不影響主幹上的**。試驗得出結果後,如果你不想要,也可以刪除這條分支。

大部分分支還是需要合併到其他分支上面去的。合併,顧名思義,也就是把各個分支上面的修改都統一到乙個分支上面來。這個是由git來完成的,git會比較各個分支之間的變化,確定變化後再進行合併。如果存在衝突,git會告訴你發生了衝突,等著你自己來解決了。在這方面,git提供了幾種方法來解決衝突,這個以後我們再學習。

7. 鎖機制

鎖機制有兩種,一種叫做嚴格鎖。比如說,你現在修改這個檔案,那麼在你修改完並提交之前是沒人能夠修改這檔案的,顯然這不是高效率的方法,所以現在的版本控制系統都採用另外一種鎖機制,叫樂觀鎖。當然跟嚴格鎖相反,你可以和別人同時共同修改同乙個檔案,但是這裡有一點需要注意的是提交的順序所導致的問題:舉個例子,兩個人a和b同時修改了檔案test.c,a修改後提交了,b修改後想提交,那麼git會通知b,在b修改的時候已經有人提交過新版本了,需要b確認是否存在衝突後進行提交。其實也不複雜,都是按照正常邏輯思維就可以明白的,呵呵。

sudo apt-get install git-core git-doc

注意看看需要哪些軟體包作為前提,然後先安裝這些軟體就行了。

GIt的基本操作詳解

目錄 基本操作 基本操作 安裝與配置 git config global user.name runoob git config global user.email test runoob.com git config global core.editor vim 指定文字編輯器 git confi...

git學習 1 基本操作

本文將介紹git的基本操作,包括基本配置 新建和修改檔案 刪除和重新命名檔案 提交和恢復操作 比較檔案差異 檢視日誌等內容。本文涉及到的所有操作都是在ubuntu14.04環境中進行的,git版本是1.9.1。在學習使用git之前,需要先理解git環境下三個目錄的概念 work directory ...

Git筆記1 基本操作

1 安裝git 安裝完成後,還需要最後一步設定,在命令列輸入 git config global user.name your name git config global user.email email example.com 2 建立git版本庫。又名倉庫,英文名repository 建立乙個...