1. 程式人生 > >專案版本控制工具----Git

專案版本控制工具----Git

版本控制的工具我早之前用的svn,後來換成了git。同樣是版本控制,為什麼要換呢?肯定是有原因的啦~

 

一、Git和SVN的比較

 svn的優缺點

優點:

1.管理方便,邏輯明確,符合一般人思維習慣。

2.易於管理,集中式伺服器更能保證安全性。

3.程式碼一致性非常高,適合開發人數不多的專案開發。

 缺點:

1.伺服器壓力太大,資料庫容量暴增。

2.如果伺服器連結不上,基本上是不可以工作的(限制性非常強)

3.不適合開源開發(開發人數非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明確的許可權管理機制

(例如分支訪問限制),可以實現分層管理,從而很好的解決開發人數眾多的問題。

 

git的優缺點

優點:

1.適合分散式開發,強調個體。

2.公共伺服器壓力和資料量都不會太大。

3.速度快、靈活,任意兩個開發者之間可以很容易的解決衝突。

4.有本地倉庫,可離線工作。

 缺點:

1.不符合常規思維,學習週期相對而言比較長。

2.程式碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有程式碼和版本資訊。

 

各有各的優缺點,還是需要根據專案來選擇適合的工具~

 

今天具體來說Git~

 

首先需要安裝Git  不過我就省略安裝過程啦(百度一大堆)。。。。

 

二、Git的工作流程

  1. 1.在工作目錄中修改檔案【進入已修改(modified)狀態】。

  2. 2.暫存檔案,將檔案的快照放入暫存區域【儲存到本地倉庫,進入已暫存(staged)狀態】。

  3. 3.提交更新,找到暫存區域的檔案,將快照永久性儲存到 Git 倉庫目錄【提交到git倉庫,進入已提交(committed)狀態】。

  4. Git 專案的三個工作區域的概念:工作目錄、暫存區域以及 Git 倉庫(如圖)

image

 

注:

工作目錄:是對專案的某個版本獨立提取出來的內容。這些從 Git 倉庫的壓縮資料庫中提取出來的檔案,放在磁碟上供你使用或修改

 

暫存區域:是一個檔案,儲存了下次將提交的檔案列表資訊,一般在 Git 倉庫目錄中。有時候也被稱作`‘索引’',不過一般說法還是叫暫存區域。

 

Git 倉庫目錄:是 Git 用來儲存專案的元資料和物件資料庫的地方。這是 Git 中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這裡的資料。

 

我感覺git比svn方便就方便在有一個暫存區域(可以理解成一個本地倉庫),可以離線工作~比較方便開發~

 

三、Git的基本運用

 

1.假設你已經安裝啦git,先檢視下自己的git版本~

$ git --version

image

 

2.我們可以先從遠端git倉庫clone出需要的專案(我專案放在阿里雲,你們也可以複製GitHub上的專案哈)

$ git clone url

1544776804

 

3.我們可以檢視下這個專案有多少個分支

$ git branch -a

image

 

4.建立一個自己的本地分支(工作中肯定是自己寫自己的分支哈,所以這裡直接新建分支來測試啦)

$ git checkout -b name #自己起一個好聽的名字(最終還是需要聽老大的規範再起哈  謹慎!)

image

 

5.把本地分支上傳到Git倉庫

$ git push origin name #這個名字呢最好和自己本地庫裡的一致(不過。。。還是需要聽老大的正確指導)

1544778785

 

6.進入專案目錄然後建立一個空的文字檔案以備接下來的測試(比較簡單  就不給複製的命令啦)

image

 

7.現在咱們是在新建的分支下,目錄是這樣的,修改一下剛才那個小檔案

image

image

 

8.可以試著提交到本地倉庫了哈

$ git add .
$ git commit -a -m  “寫個備註 寫備註可是個好習慣呀“

image

 

9.現在我們的目錄是這樣的了,這個檔案有了綠色的小對勾~說明提交到本地成功!

image

 

10.我們想要把這些改動放到Git的遠端倉庫裡,需要這樣做

$ git push origin name #這裡的name代表的是Git遠端上的分支名稱

1544780170

 

11.現在我們的分支上已經有這個檔案,並且咱們的修改也一併提交到遠端倉庫啦,恭喜你~說明你成功啦~

image

image

 

到這裡醉醉基本的操作就完成啦,但是還會出現一些問題,咱們這裡只有自己的分支程式碼,如果需要用到別人的程式碼呢?這時候就需要在本地匯入別人的分支進行合併來達到自己也可以用別人的程式碼的目的。

 

四、Git常用命令

$ git pull  #把伺服器中最新的程式碼更新到本地
$ git checkout name #切換到某個分支上 name代表本地分支名稱
$ git fetch origin name #獲取某個分支程式碼  name代表遠端分支名稱
$ git merge name #合併分支 name代表的是要合併的分支名稱
$ git branch -d name #刪除本地分支 name。。。代表本地分支名稱
$ git branch -r -d #刪除遠端分支  name。。。代表遠端分支名稱

 

到這裡應該就差不多啦,因為在咱們工作中是可以使用外掛來代替命令列模式的,所以,,,歡迎大家指正補充~~~