分支建立(git branch)

洧杰 已發佈 2019-11-17

接下來算是進入本教學的重頭戲,因為要掌握分支才能算是真正了解 Git 操作

這裡筆者也會一步步帶您了解分支(branch)。

為什麼要使用分支?

在實務開發上,因為有些開發版本是屬於「上線穩定版」、「測試版本」、「修改 BUG 版本」,但我們總不能將這些版本混在一起,會導致管理不易。所以 Git 為了解決此問題,開發了分支功能,像是下圖是 2010 年,Vincent Driessen 所提出來的開發規則。

images

分支的好處,就是每一條線都各司其職,做完事後,再將兩條線的功能合併,並部署上線。

接下來我們就來講解,如何開一條分支來管理吧!

分支起手式

這裡我會建議你開啟一個本地數據庫,一同來練習。

1.環境說明

在你使用 git init 開本地數據庫時,預設的分支名稱就是 master,所以現在我們可以說:

  • 目前有一條 master 分支,裡面有 2 個 commit

images

2. 新增分支

接下來,我們想要開始新增新功能,但又不能污染到目前 master 的穩定版本狀態,於是我們新增一個 dev 分支,指令是:

git branch dev

images

指令輸入完後,就可以看到dev 的分支也在 c2 。但目前的 HEAD 是指向到 master,所以我們必須將 HEAD 切換到 dev

2. 切換分支

當我們要切換分支時,指令是:

git checkout dev

此時狀態就會變成下圖,目前的工作目錄已經指向到 dev
images

但你觀看工作目錄時,其實內容都沒有變更,因為目前 masterdev 都是指向在 c2 的 commit 上。

再來我們就開始在 dev 上開發,並新增 2 個 commit。

images

在這裡,我們可以用 git log 來反覆驗證。

  • 你確實可以看到 dev 目前在第四個 commit 紀錄上,並且 HEAD 是指向到 dev
  • master 仍停留在第二個 commit

images

3.觀看分支狀態

接下來我們切換回 master 看它的狀態。指令是:

git checkout master

images

此時你也可以用 git log 觀看,會發現只剩下 2 個 commit。

images

原因也是因為你目前 master 的位置是在第二個 commit,你自然得不到用 dev 開發的後兩個 commit 紀錄。

但是 dev 分支被開發的目的,就是確保功能開發好後,再讓正式環境的 master 可以合併 dev 的內容。

所以下個章節,我們就來分享,如何讓 master 去合併 dev 的功能。

語法回顧

  • 建立分支:git branch <分支名稱>
  • 切換分支:git checkout <分支名稱>

關於筆者

暱稱:洧杰

介紹:六角學院校長,熱愛分享與交流的前端工程師,目前專注於兼容桌面/移動網頁前端開發,期間已協助數百位平面設計師,網頁設計師導入標準網頁設計。