2014年4月12日 星期六

GIT & EGIT 使用介紹(一) - 名詞與概念介紹


        GIT已經成為目前主流的版控,大家都在有用,但剛開始接觸GIT時,被其概念搞得一團亂,發現越看越多網路上的文章就越模糊,到底GIT的概念是甚麼? 所以在介紹如何使用之前,一定得先來介紹概念及專有名詞,畢竟網路上GIT的教學實在是太多了,就重新整理一些當初看不懂的東西,希望能夠縮短大家的學習歷程!

1. Work Directory: 也可以稱之為Work Tree,其實所代表的,就是在自己硬碟中所使用的專案目錄。

 

2. Repository: 故名思議就是版控的儲存庫,一台電腦或一台主機是可以有很多儲存庫,例如: 一個專案可以放在一個專屬的儲存庫,也可以多個專案共用一個儲存庫,如以下的資料夾結構:

Project Folder
--.git (repository)
--project files

or

Project Folder
--.git (repository)
--Project A
----Project A Files
--Project B
----Project B Files
--Project C
----Project C Files

 

3. Stage Area(Index): 又可視為一個索引記錄區域,當檔案被加入到索引時,代表這個檔案已經在版控的控制中,當檔案一開始加入到Index,其狀態為unmodified,如果更改了檔案內容,在Index的狀態就會修改為modified,請注意,此時的修改並未儲存到Repository。


所以到目前為止的架構應該為:


2014-4-12 上午 09-20-47

 

4. Branch(分支): GIT最重要的特點就是Branch,一個Branch就為一份完整專案(請注意! 這邊是假設專案中所有檔案已經加入到Index,並且commit到Repository),而我們也可以在同個Repository中建立多個Branch,這樣的好處在於,當專案需要大幅度改動架構,又或者需要區分不同做法的版本時,可以另外開一個Branch,將要改動的寫法寫在這個新建立出來的Branch,這樣原本主要版本的Branch就不會受到影響,並且當我們覺得大幅改動的程式足夠穩定使用,這時我們可以將這個新建立的Branch整合進我們主要的Branch進行使用。


所以到目前為止的架構應該為:


2014-4-12 上午 09-20-47 

 

5. HEAD: GIT可以有這麼多的Branch,但是我們目前到底是在修改那一個Branch當中的檔案?這時我們就必須要瞭解HEAD,這代表的是你目前正在使用的Branch,例如: 我們有Branch A, Branch B, Branch C,如果我們現在正在使用的Branch是Branch B,則HEAD就為Branch B,所以我們可以藉由切換Branch,來改動目前我們正在編輯使用的Branch。


所以到目前為止的架構應該為:


2014-4-12 上午 09-20-47 

 

6. Origin: 看到這邊大家應該會有個疑問就是: 那我從Server或類似Github弄下來的東西是怎麼回事? 其實我們的動作是直接從遠端將遠端Repository和遠端目前正在使用的Branch,Clone一份到我們的本機裡,這個動作我們稱之為Fork(分流),而遠端的部份我們就稱之為Origin。


所以到目前為止的架構應該為:

 

 2014-4-12 上午 09-20-47

 

7. Master: 看到這邊我們可以發現,不管是自己在本機端建立Repository及Branch,或者從遠端Clone一份到本機,我們都勢必會有一個Branch,這第一個Branch,通常我們都會稱之為master。


所以最後架構應該為:


2014-4-12 上午 09-20-47 

 


To be continue…


轉貼請註明出處,最好直接使用聯結轉貼! Thanks~
作者: Samuel - 林靖傑
Blog:http://sabaothtech.blogspot.tw/
日期:2014/04/12

沒有留言:

張貼留言