iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0
Software Development

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

Day24|認識Git Merge:把 Branch 合併回 master

  • 分享至 

  • xImage
  •  

我昨天已經成功建立readme-update這個Branch,在上面修改了README並Commit,Push到GitHub上了。
所以今天就要將昨天在readme-update這個Branch修改的結果合併回master,那就要來認識一下Merge了!


Merge 是什麼?

Merge 是合併的意思。
git merge 就是 Git用來合併不同分支開發成果的指令。當我在其他Branch上完成修改確認沒有問題後,就可以透過Merge將這些修改合併回主要分支master。

實作Merge

那我們就拿昨天修改README完成Commit和Push的readme-update這個Branch來實際操作,將這些修改合併回 master,看看 Merge 實際上是怎麼運作的!

1. 確認目前的 Branch 狀態

首先使用git status 確認目前所在的 Branch,然後確認有沒有未提交的修改。
https://ithelp.ithome.com.tw/upload/images/20261008/20178158jsAsKSYUJS.png

  • 可以看到我現在所在的 Branch是readme-update。
  • 而且目前沒有未提交的修改。

2.切換回 master

我們要將 readme-update 的修改合併進master,所以要使用git switch master先把所在分支切換回master,因為git merge 是將指定分支合併進「目前所在的分支」。
https://ithelp.ithome.com.tw/upload/images/20261008/20178158a6vKDZOidy.png

接著用git branch來確認目前所在的分支是不是在master。
https://ithelp.ithome.com.tw/upload/images/20261008/20178158y84e9GqnJL.png

3.執行 git merge

做完前面的步驟確認自己是在master之後就可以開始正式合併了!

輸入以下指令:

git merge readme-update

這個指令的意思是說:將 readme-update 的修改合併進目前所在的 master。
https://ithelp.ithome.com.tw/upload/images/20261008/20178158Nyg3ohDpao.png
這裡出現了Fast-forward代表這次使用的是快轉合併,他是什麼意思呢?
是因為我建立了readme-update 後master並沒有新增其他 Commit,所以Git可以直接將 master 移動到 readme-update最新的Commit不需要另外建立一筆 Merge Commit。
下面的 1 file changed, 3 insertions(+),代表的就是這次合併修改了 1 個檔案並新增了 3 行內容。

4.確認合併結果

我之前一直以為我將readme-update合併到master之後, readme-update 這條 Branch會消失,但輸入:git branch發現 master 和 readme-update 都還在。我就問了AI為什麼,才知道原來 Merge 只是將修改成果合併到主要分支,並不會自動刪除原本的 Branch。

接著我就使用:

git log --oneline --decorate -5

來查看最近的Commit 紀錄。
https://ithelp.ithome.com.tw/upload/images/20261008/20178158aZQf8PoLzh.png
可以看到 master 和 readme-update 都指向 0fb5430,表示兩條Branch目前位於同一個Commit,也就是有合併成功的意思。

5.將合併結果 Push 到 GitHub

我們在本機已經成功 Merge了,但GitHub 上的master還沒有同步更新,所以最後輸入:

git push origin master

將合併後的 master 推送到 GitHub。
到GitHub看看 master 的 README,可以看到昨天在 readme-update新增的專案維護段落也出現了!
https://ithelp.ithome.com.tw/upload/images/20261008/2017815831x6uyKoB6.png


今天的第一次Merge十分的順利,因為Git 直接幫我們完成了 Fast-forward。但是假如我跟我同學在兩條 Branch做不一樣的功能但修改了同一個地方,Git會不知道該保留哪個版本嗎,那該怎麼辦?
明天就要來了解 ** 合併衝突** 。


上一篇
Day 23|第一次建立 Branch
系列文
從零開始將作品整理成GitHub履歷 共 24 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言