2012年8月11日 星期六

git 之簡單介紹 part 1

git 是眾多(分散式)版本控制系統之一種
我相信會找到這篇文章的人
都已經知道 git 可以用來作什麼,並且希望拿他來作點什麼
所以我就不介紹安裝、git 的歷史等說明了
而會介紹一些基本的概念
一般來說,一個用 git 管理的專案有兩個比較重要的結構
commit 以及 branch
只要了解這兩個結構就能掌握 git 的不少功能了
對於大多數的應用相信也足夠了

commit:

當你認為你所做的更動應該被記錄下來時,可以把現在的狀態建立一個 commit,建立的方法稍候說明。只要是得到了 git 你的專案的人,基本上能檢視每一次的 commit。
git 的 commit 會組成一個樹狀結構,我稱為 commit tree(嚴謹的說,不是 tree,而是有向無環圖(Directed acyclic graph),看不懂這個字的人就看下面的圖吧)。如下圖,每個 commit 會紀錄(指向)一個或多個他的祖先,以及這個 commit 之中所變化的檔案。
branch:
這個名字我覺得有些誤導,與其說他是條狀的樹枝 (branch),不如說他就只是整個 commit tree 之中,指向其中一個 commit 的參照 (reference) 而已,一個 branch 指向一個 commit,但多個 branch 也能指向同一個 commit,這也就是我認為 branch 這個名字取得不恰當。
一般來說一個 git 專案預設會有一個叫 master 的 branch,另外會有一個特殊的 branch 叫做 HEAD,HEAD 通常是不能明確 (explicitly) 更改的,關於其功能,稍後會說明。

透過某些指令,我們能改變 commit tree 的結構,以及 branch 的參照對象。git 就是靠著 commit, branch 的更動達到協作、版本控制的功能。

下一篇中我會作基本指令的介紹。

沒有留言:

張貼留言