Git 入門:什麼是 Branch、用來做什麼? 【你的程式時光機】

更新 發佈閱讀 7 分鐘

在上一篇文章中,我們了解了 Git 裡 commit 的本質,commit 是「檔案在某時間點的快照」,而所有的 commit 會彼此串接成一條歷史紀錄鏈。

之所以要在前面就介紹 commit 的原理,是因為他與「Branch (分支)」的概念息息相關。


開發主線 main

在正式介紹分支前,先來回想一下之前使用 git 的情況~

使用 git 時,應該會注意到專案資料夾旁邊括號寫著 main,如果你用的 git 版本比較舊,可能會看到 master,這其實就是我們現在處在的分支名稱。

在初始化 git 後,git 會自動幫我們建立一個分支,讓我們在上面開發程式,而這第一條分支就是專案的「主要分支」,通常我們會直接叫這條線「main」,或是稱作開發主線。


從 commit 鏈理解 branch

結合前面 commit 的概念,我們說 commit 會一個串著一個:

ABCD 

所以我們的 main 會像這樣:

ABCD 

main

main 指向這條鏈的最後一個 commit,當你持續 commit 時,其實是,Git 會在目前最後一個 commit (例如 D) 後面接上新的 commit (例如 E),而 main 也會移到新的 commit 上:

ABCDE 

main

Branch 是什麼

看完了前一節,相信聰明的你一定想到了,所謂的 Branch 就是一個指向某個 commit 的指標

假設我們已經開發好一支程式,並且已經上線、穩定運作中,現在想要開發新的功能, 為了避免影響到已經上線的功能,我們通常不會直接修改當前的程式,這時候,Git 的 Branch 分支 功能就派上了。


建立分支

假設你現在在 main,想建立一個新分支,可以用這個指令:

git branch <branch_name>

這個指令會讓你在當前的分支上創建一個新的分支,假設想要創建一個叫做 develop 的分支,就用:git branch ​develop

此時結構變成這樣:

               develop

ABCDE

main

可以看到 git 多了一個新的指標,也指向 main 本來指向的 commit。也就是說,branch 並不是一份「複製的專案」,而只是「指向某個版本的標籤」。


切換分支

到這個階段我們只是建立好分支,但還停在 main 上。如果想要切換到這個分支,可以用:

git switch <branch_name>

或是比較舊的寫法:

git checkout ​develop

上面這兩個指令都是用來切換分支的。

如果想要建立並立刻切換分支,可以用:

git switch -c develop

切換分支後,可以看到專案後方括號內的字變了。

vocus|新世代的創作平台

雖然看到的程式會與之前一樣,但已經進入了另一個開發空間,接下來的 commit 都會發生在當前的分支上。


在分支上開發

當你在 develop 上開發並 commit:

		              	develop

ABCDEF
​ ​↑
main

你會發現 main 完全不會被影響,新的 commit 只存在 develop 分支,就像是平行宇宙一樣!!


為何需要 Branch

Branch 解決了幾個實務上非常重要的問題:

1. 功能開發不互相干擾

有時某功能開發到一半,被迫需要先去修復其他 bug 或完成其他功能,這時候就可以建立不同分支同時進行,完成緊急任務後再切回開發分支繼續進行。

2. 安全測試

在分支上,我們可以放心做嘗試,不論是重構、測新技術、實驗不同的寫法等,完全不用擔心搞壞主線。

3. 多人協作

當多人同時開發專案時,大家可以基於 main 這個穩定版本各自開發新功能而不互相影響,完成功能後再合併回主線。


合併分支(Merge)

當功能完成後,我們會把它合併回主分支:

git checkout main
git merge ​develop

架構就會變成:

		              	develop

ABCDEF

main

main 現在也包含了 develop 的 commit,因為 merge 的本質就是把另一條分支的 commit「整合到目前分支後面」。


Branch 的本質

有些新手寶寶會誤會,以為分支是複製一份專案,但其實分支是一個指向 commit 的指標

可以把分支想像成是貼在 commit 上的貼紙,一條分支就是包含了這張貼紙之前的所有 commit。

所以 git 的分支有兩個很大的優勢:

  1. 建立 branch 非常快:因為這只是建立一個指標
  2. 幾乎不占空間:並沒有真的複製整個專案

總結

經過了這篇介紹,我們對 branch 有了基本的認識,branch 也是 Git 最核心的能力之一,讓你可以:

  1. 同時進行多條開發線
  2. 讓開發變得安全、不互相干擾
  3. 讓多人協作變得可行

下一篇文章,我們會進一步討論分支合併的底層邏輯,以及合併的衝突是什麼、怎麼解決。

留言
avatar-img
Elaine 粼粼的林林總總
79會員
44內容數
不定期地分享程式/旅遊/學習/閱讀或各式各樣的文章,如果對我的分享有興趣,歡迎來找我玩~
2026/02/24
前一篇文章中,我們學會了版本控制、建立了第一個版本節點,但對於其中細節並沒有特別解釋,你可能也會很想知道:「所以,commit 到底是什麼?」今天這篇文章,我們就來真正理解 commit 的本質​,以及它在 Git 世界中到底有多重要。
2026/02/24
前一篇文章中,我們學會了版本控制、建立了第一個版本節點,但對於其中細節並沒有特別解釋,你可能也會很想知道:「所以,commit 到底是什麼?」今天這篇文章,我們就來真正理解 commit 的本質​,以及它在 Git 世界中到底有多重要。
2026/01/31
這篇文章將會探討 Git 的工作目錄、暫存區和儲存庫三大區域,並解釋檔案在這三個區域中的狀態(未追蹤、已追蹤、已修改、已刪除),以及 git status 指令中常見的訊息。透過理解這三大區域的運作原理,可以幫助開發者更精準、安全地進行版本控制。
2026/01/31
這篇文章將會探討 Git 的工作目錄、暫存區和儲存庫三大區域,並解釋檔案在這三個區域中的狀態(未追蹤、已追蹤、已修改、已刪除),以及 git status 指令中常見的訊息。透過理解這三大區域的運作原理,可以幫助開發者更精準、安全地進行版本控制。
2026/01/28
上一篇文章中,我們已經成功安裝好 Git,在本篇文章中,將會講解 Git 的核心操作,包括初始化儲存庫、查看檔案狀態、添加變更到暫存區,以及保存版本。文章中也簡單提及了 Git 的三個核心區域:工作目錄、暫存區和儲存庫,並解釋了 .gitignore 的用途。
Thumbnail
2026/01/28
上一篇文章中,我們已經成功安裝好 Git,在本篇文章中,將會講解 Git 的核心操作,包括初始化儲存庫、查看檔案狀態、添加變更到暫存區,以及保存版本。文章中也簡單提及了 Git 的三個核心區域:工作目錄、暫存區和儲存庫,並解釋了 .gitignore 的用途。
Thumbnail
看更多
你可能也想看
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
本文解析 Git Tag 與 GitHub Release 差異。從本地標籤查詢、同步推送至遠端,到運用 Actions 實現自動化發布,帶你掌握版本控制與軟體交付技巧,提升開發效率!
Thumbnail
本文解析 Git Tag 與 GitHub Release 差異。從本地標籤查詢、同步推送至遠端,到運用 Actions 實現自動化發布,帶你掌握版本控制與軟體交付技巧,提升開發效率!
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
標籤命名有空格或需要更改已上傳的 Tag?本文整理 Git 標籤管理實戰技巧,包含回溯補打、刪除遠端標籤、正確命名規則及附註標籤用法。透過簡單指令,讓你專業管理版本發布,避免團隊溝通混亂。
Thumbnail
標籤命名有空格或需要更改已上傳的 Tag?本文整理 Git 標籤管理實戰技巧,包含回溯補打、刪除遠端標籤、正確命名規則及附註標籤用法。透過簡單指令,讓你專業管理版本發布,避免團隊溝通混亂。
Thumbnail
想學 Git 卻不知道怎麼開始嗎?本篇完整教學帶你從 Git 官方網站下載、Windows 安裝流程、預設 main 分支設定,到終端機基本身份配置一次搞懂。並加碼介紹 VS Code 推薦套件與介面中文化設定,幫助你快速建立專業開發環境。新手也能輕鬆上手,10 分鐘完成 Git 安裝與基礎設定
Thumbnail
想學 Git 卻不知道怎麼開始嗎?本篇完整教學帶你從 Git 官方網站下載、Windows 安裝流程、預設 main 分支設定,到終端機基本身份配置一次搞懂。並加碼介紹 VS Code 推薦套件與介面中文化設定,幫助你快速建立專業開發環境。新手也能輕鬆上手,10 分鐘完成 Git 安裝與基礎設定
Thumbnail
本篇文章介紹 Git 的基礎概念,從專案建立開始,一步步從建立專案並推送到遠端倉庫。掌握 Git 的基礎操作算是軟體工程師必備的能力。後續我們將在下篇文章中,進一步介紹 Git 的分支管理、協作流程及其他進階應用。​
Thumbnail
本篇文章介紹 Git 的基礎概念,從專案建立開始,一步步從建立專案並推送到遠端倉庫。掌握 Git 的基礎操作算是軟體工程師必備的能力。後續我們將在下篇文章中,進一步介紹 Git 的分支管理、協作流程及其他進階應用。​
Thumbnail
這篇文章提供 Git 版本控制系統的完整教學,從基礎概念到進階操作,包含圖文並茂的步驟說明和範例,讓讀者可以快速上手並應用於團隊協作及 GitHub Pages 部署網站。
Thumbnail
這篇文章提供 Git 版本控制系統的完整教學,從基礎概念到進階操作,包含圖文並茂的步驟說明和範例,讓讀者可以快速上手並應用於團隊協作及 GitHub Pages 部署網站。
Thumbnail
對程式新手或文組轉職者來說,Git、GitHub、IDE 常令人困惑。其實IDE 像是寫程式的桌子,Git 是記錄版本的日記,GitHub 是作品展覽廳。也可以用 Google Colab 寫 Python,直接存到 GitHub,先從簡單方法開始,讓程式碼管理更完整,也為履歷加分。
Thumbnail
對程式新手或文組轉職者來說,Git、GitHub、IDE 常令人困惑。其實IDE 像是寫程式的桌子,Git 是記錄版本的日記,GitHub 是作品展覽廳。也可以用 Google Colab 寫 Python,直接存到 GitHub,先從簡單方法開始,讓程式碼管理更完整,也為履歷加分。
Thumbnail
上一篇《版本控制的藝術:Git 基礎篇》介紹了 Git 的安裝與推送到遠端倉庫的基本操作。雖然這一篇名為「實務篇」,但其實並沒有太複雜的概念,主要是根據我的實務經驗,分享開發者 A 與我本人的協作過程,以及一些需要注意的事項。熟練這些操作後,基本上就能成為一名在 Git 方面合格的工程師了。
Thumbnail
上一篇《版本控制的藝術:Git 基礎篇》介紹了 Git 的安裝與推送到遠端倉庫的基本操作。雖然這一篇名為「實務篇」,但其實並沒有太複雜的概念,主要是根據我的實務經驗,分享開發者 A 與我本人的協作過程,以及一些需要注意的事項。熟練這些操作後,基本上就能成為一名在 Git 方面合格的工程師了。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News