1. 程式人生 > 其它 >對於Git分支的理解與基本應用

對於Git分支的理解與基本應用

技術標籤:GitHubgitgit

第一部分

git分支的作用
分支不是git的專利,早在CVS時代就有了。分支對於團隊來說作用太大了。比如說一個專案現在是1.0版,那麼開發團隊可能要同時進行1.1版和2.0版的開發,這樣程式碼就會出現較大分歧。這時候就需要用到分支了,不同的任務組在不同的分支上開發,互相之間不會影響。再比如說,需要向專案中新增一個新功能,一般的團隊都不會直接在主分支上修改,都會新建一個分支,在上面更改程式碼。這樣做的好處就是保證主線程式碼的完整性和可用性,也就是說,主線上都是穩定的程式碼,可以直接拿來發布的。

分支在git上的特點
git的技術可以說是非常強大,說一切開發都依賴於分支一點都不過分。一般專案的master

分支都是穩定的程式碼,可以直接釋出或者被專案之外的人使用。新特性和bug修改都在不同的分支上進行開發和測試。這樣規範了整個軟體的開發流程。分支之間的互不影響這種特性可以增加團隊合作的效率。git分支的另外一個重要特性就是可以合併不同軟體倉庫(fork)的分支。大體就是 開發團隊有一個主軟體倉庫,開發者可以fork這個倉庫,相當於克隆了一個私有的軟體倉庫,然後開發者就可以在自己的軟體倉庫中建立分支並開發測試,測試完畢之後,可以向主軟體倉庫提交merge request,這樣新開發的特性就會被合併到主軟體倉庫的某個分支中。這種特性極大地推動了開源專案,多年前參加開源專案都是神話,自從GIT出現後,每個人都可能成為開源專案的貢獻者,就是基於這種特性(請參照Github的pull request,和merge request是同一個東西)

第二部分

git克隆分支
1.首先,你需要使用$ git clone這個命令克隆一個本地庫。

e:
cd ProxSpace/pm3
git clone https://github.com/iceman1001/proxmark3.git "iceman"

這將遠端的proxmark3專案的master分支克隆到 E:\ProxSpace\pm3下的iceman資料夾,
注意要克隆的目錄(比如這裡的iceman)要先建立好,且裡面不能有檔案(必須是空目錄)

之後不會克隆任何一個分支下來的。

2.檢視本地與遠端分支情況 git branch -a
假定你現在的命令列正處於已經在當前克隆好的資料夾中。

git branch -a

image.png

綠色代表本地已經有的分支。remotes是遠端分支情況

3.假定你需要一個autoBuild(此處假定遠端庫中已經存在此分支,也就是你需要克隆的)分支用於開發的話,你需要在autoBuild分支上開發,就必須建立遠端origin的autoBuild分支到本地,於是用checkout這個命令建立本地autoBuild分支(並不會在本地建立分支資料夾的,只是在本地建立了個和遠端同步的分支)

git checkout -b autoBuild origin/autoBuild

再同步下

git pull

不執行這步的話,新checkout的分支並不會同步內容下來,以後獲取分支更新內容也是用這個命令.

iamge.png
這樣就實現了克隆autoBuild分支。

再輸入git branch -a 來看看分支情況
iamge.png
切換分支

git checkout autoBuild

這樣就在本地切換到了autoBuild分支了。

第一部分轉載於 git的分支有什麼用
第二部分轉載於 Git克隆分支
這篇文章也很有用 git克隆遠端倉庫的指定分支方法(附常用git配置命令)