iT邦幫忙

2026 iThome 鐵人賽

DAY 22
0
Software Development

從零開始將作品整理成GitHub履歷系列 第 22 篇

Day22| Git Branch 是什麼,直接改 master不行嗎?

  • 分享至 

  • xImage
  •  

昨天在Push成功時,PowerShell跳出了一段訊息:

[new branch]      master -> master
branch 'master' set up to track 'origin/master'.

然後AI跟我解釋:其中的 master 就是你現在所在的 Branch。
那我這時開始注意到Branch 是什麼?
所以今天就是要來認識一下Branch(分支)


Branch 是什麼?

Branch就是分支。他的用途就是可以從目前的版本另外建立一條分支,假設我今天想要新增一個功能,但又不想直接修改到目前穩定的master,我就可以另外建立一條 Branch。
然後我看到《為你自己學 Git》一個很有趣的比喻,他說可以把Branch想成影分身術,
大概的比喻我整理成這樣:

本體 = 主要版本
影分身 = 開出去的 Branch
分身去執行任務 = 在 Branch 上開發、修改、實驗
失敗 = 不採用這條 Branch 的成果
成功 = 確認沒問題後再合併回主要版本

為什麼需要 Branch?

那麼為什麼要開影分身在Branch上修改呢,在master上不可以嗎?
其實在master也是可以,但假設 master現在是一個可以正常運作的穩定版本,如果今天我要新增一個功能所以直接在master上修改,結果改到一半發現程式出問題了,這時候 master上就會留下還沒完成有問題的修改,可能就會影響原本穩定的版本。
這時候我們就很需要先建立一個新的 Branch,把要修改的內容放到這條分支上進行:

A ─── B ─── C ─── D  ← master(穩定的版本)
                  \
                   E ─── F  ← branch(用來修改或新增功能)

這樣如果這個版本修改成功,就可以把 Branch 的成果Merge合併回 master;如果修改失敗或不要這個功能也可以選擇不合併。因為Branch不是複製出另一份專案檔案,而是Git建立的另一條開發路線。
用影分身比喻來理解的話就是:

本體還是原本的狀態,先讓影分身去執行任務,成功之後再把成果帶回來,失敗就不要了但本體依然沒受影響。

那前面用Branch的例子都是說修改或新增內容,但他其實不只可以用來新增功能,修正 Bug、測試不同做法,或是專案多人一起開發不同功能時也都很適合使用Branch。
昨天看到master時還不知道它是什麼意思,但現在知道它其實也是 Branch 的其中一條了!那麼明天就要來實際操作看看,進行我的第一次影分身術了!


參考資料:


上一篇
Day21|把專案放上 GitHub! 第一次 Push
系列文
從零開始將作品整理成GitHub履歷 共 22 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言