分支建立(git branch)
接下來算是進入本教學的重頭戲,因為要掌握分支才能算是真正了解 Git 操作。
這裡筆者也會一步步帶您了解分支(branch)。
為什麼要使用分支?
在實務開發上,因為有些開發版本是屬於「上線穩定版」、「測試版本」、「修改 BUG 版本」,但我們總不能將這些版本混在一起,會導致管理不易。所以 Git 為了解決此問題,開發了分支
功能,像是下圖是 2010 年,Vincent Driessen 所提出來的開發規則。
分支的好處,就是每一條線都各司其職,做完事後,再將兩條線的功能合併,並部署上線。
接下來我們就來講解,如何開一條分支來管理吧!
分支起手式
這裡我會建議你開啟一個本地數據庫,一同來練習。
1.環境說明
在你使用 git init
開本地數據庫時,預設的分支名稱就是 master
,所以現在我們可以說:
- 目前有一條
master
分支,裡面有 2 個 commit
2. 新增分支
接下來,我們想要開始新增新功能,但又不能污染到目前 master
的穩定版本狀態,於是我們新增一個 dev
分支,指令是:
git branch dev
指令輸入完後,就可以看到dev
的分支也在 c2
。但目前的 HEAD
是指向到 master
,所以我們必須將 HEAD
切換到 dev
。
2. 切換分支
當我們要切換分支時,指令是:
git checkout dev
此時狀態就會變成下圖,目前的工作目錄已經指向到 dev
。
但你觀看工作目錄時,其實內容都沒有變更,因為目前 master
與 dev
都是指向在 c2
的 commit 上。
再來我們就開始在 dev
上開發,並新增 2 個 commit。
在這裡,我們可以用 git log
來反覆驗證。
- 你確實可以看到
dev
目前在第四個 commit 紀錄上,並且HEAD
是指向到dev
- 而
master
仍停留在第二個 commit
3.觀看分支狀態
接下來我們切換回 master
看它的狀態。指令是:
git checkout master
此時你也可以用 git log
觀看,會發現只剩下 2 個 commit。
原因也是因為你目前 master
的位置是在第二個 commit,你自然得不到用 dev
開發的後兩個 commit 紀錄。
但是 dev
分支被開發的目的,就是確保功能開發好後,再讓正式環境的 master
可以合併 dev
的內容。
所以下個章節,我們就來分享,如何讓 master
去合併 dev
的功能。
語法回顧
- 建立分支:
git branch <分支名稱>
- 切換分支:
git checkout <分支名稱>