iT邦幫忙

2026 iThome 鐵人賽

DAY 28
0
Software Development

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

Day 28|GitHub Pull Request:提出合併請求與 Code Review

  • 分享至 

  • xImage
  •  

昨天 Day 27 已經實作了 git clone、git fetch、git pull,學會怎麼把 GitHub 上的修改同步到自己的電腦。
那如果今天是我們修改了專案,想把自己的分支合併到正式的 master,又可以怎麼做呢?
所以今天要認識的就是GitHub 的 Pull Request(簡稱:PR),然後實際操作一次。


Pull Request 是什麼?

Pull Request(簡稱 PR)直接翻成中文就是「提出合併請求」。
假設小組專案我們在自己的分支完成修改,想將這些修改加入正式的 master就可以透過 GitHub 建立 Pull Request。
其他協作者透過我建立的Pull Request先查看修改了哪些檔案,然後留下建議或進行 Code Review,確認沒問題後再決定是否合併。

那這裡我就覺得查看修改了哪些檔案這件事不是可以用git fetch 跟 git diff也可以在合併前查看別人修改了甚麼嗎?
所以我把這個想法跟AI說了之後他就做了一個表格:

比較項目 git fetch + git diff Pull Request(PR)
查看遠端修改 ✅ 可以 ✅ 可以
操作位置 本機 Git GitHub 網頁
查看 Commit ✅ 可以 ✅ 可以
針對程式碼留言 沒有內建審查留言功能 ✅ 可以
團隊審查與討論 需搭配其他工具 ✅ 可以
提出合併請求 ❌ 不行 ✅ 可以

所以git fetch 負責取得遠端更新,git diff 可以比較修改內容。
Pull Request 是讓團隊成員一起審查、討論,最後決定是否合併分支的流程。

Pull Request 的優點

  1. 方便進行 Code Review:合併前可以先查看修改內容,並針對特定程式碼留下建議,減少錯誤進入正式分支的機會。
  2. 促進團隊溝通:協作者可以在 PR 中討論修改內容,不需要透過其他通訊軟體來回確認。
  3. 保留修改與討論紀錄:PR 會記錄相關的 Commit、留言和審查過程,方便之後回頭查看。
  4. 降低影響正式分支的風險:可以先在自己的分支完成修改,確認沒有問題後再合併到 master,避免直接修改正式版本。
  5. 方便管理合併流程:可以清楚知道哪些修改正在等待審查、哪些已經合併,以及哪些 PR 已經關閉。

實作 Pull Request

那麼大概了解 Pull Request之後,就從昨天的 sync-practice 分支開始實際操作一次!
等等會依序建立 PR、查看 Files changed、留下 Review Comment,但因為我沒有真的要合併到master所以最後會關閉 PR不是進行合併。

1. 建立 Pull Request

首先進入GitHub的eyes-prj Repository,點選上方的 Pull requests,按下 New pull request。
進入 Compare changes 頁面後,會看到兩個分支選項:
base:準備接收修改的目標分支。
compare:我們想提出合併請求的來源分支。
那預設他們都是master的,所以我們需要將compare切換成sync-practice,選好後,GitHub 就會自動比較兩個分支之間的差異了。
https://ithelp.ithome.com.tw/upload/images/20261012/20178158N8WUomE5ET.png

圖片可以看到這些資訊:
Able to merge:目前沒有合併衝突,可以自動合併。
1 commit:這次有一筆 Commit。
1 file changed:修改了一個檔案。
3 additions、0 deletions:新增三行內容,沒有刪除內容。
下方也可以看到昨天新增的 sync-demo.txt和檔案中的修改內容。

確認這些沒問題之後就可以按下Create pull request了。

接著GitHub會讓我們填寫 PR 的標題和說明:
https://ithelp.ithome.com.tw/upload/images/20261012/20178158pokg2i5ADy.png
這次的title是他自動幫我填入的Add sync demo file,description就簡單介紹一下這次新增的檔案、修改目的,還有備註這是一個練習用的 PR。
填寫完成後,再按一次 Create pull request就成功建立 PR 了!

建立成功後可以看到這次的 PR #1,狀態顯示 Open代表合併請求已經建立,但還沒有真正合併到 master。
https://ithelp.ithome.com.tw/upload/images/20261012/20178158pQQfUzfGRe.png

2. 查看 Files changed

https://ithelp.ithome.com.tw/upload/images/20261012/201781581Rf5eQNZQX.png
成功建立 PR 後,可以看到上方有幾個頁籤功能分別是:
Conversation:查看 PR 的說明、留言和討論紀錄。
Commits:查看這次 PR 包含哪些 Commit。
Checks:查看自動化檢查的結果。
Files changed:查看這次修改了哪些檔案及內容。
這次我們先查看Files changed,可以看到昨天新增的 sync-demo.txt,還有裡面的三行內容。
其中綠色背景代表新增的內容,可以更直觀的讓我們看到這次修改了什麼。

3. 實作 Code Review

https://ithelp.ithome.com.tw/upload/images/20261012/201781581wybY8WoWy.png
接下來我們來練習 Code Review就是程式碼審查。
在 Files changed 頁面中,將滑鼠移到想要留言的程式碼行數旁邊就會出現一個 藍色的+ 按鈕。按下去就可以針對那一行留下建議。
那我這次選了第二行然後給的建議是:這裡可以補充修改日期,讓其他協作者更容易追蹤更新紀錄。
這樣就可以針對特定的修改內容提出建議,不只是留下整體的 PR 留言讓人不知道是在講哪裡。
輸入完成後,就會出現兩個主要選項:
Comment:直接發布這則留言。
Start a review:先將留言加入待提交的審查,之後可以一起提交多則建議。
這次我選擇了Start a review,因為我只是要體驗一下完整的 Code Review 流程而已。

4. 關閉 Pull Request

完成 Code Review 後,回到 Conversation 頁面,就可以看到剛剛提交的留言已經出現在討論紀錄中。如果這次的修改已經確認沒問題,就可以點擊 Merge pull request,將 sync-practice 的修改合併到 master。
但我前面說過我只是要練習 Pull Request 的操作,我並沒有真的要把測試用的 sync-demo.txt 加入正式專案,所以我點了Close pull request,直接關閉這次的 PR,就可以看到綠色的 Open 變成紅色的 Closed了。
雖然PR 被關閉了,但原本的分支並不會因此被刪除,之前的 Commit、留言和審查紀錄也都會保留下來。
這次雖然沒有真的合併到 master,但還是可以從 GitHub 的 Closed PR 紀錄中找到今天的練習內容!

那今天的實作就到這邊完成了喔!


上一篇
Day27|同步 GitHub 專案:實作 Git clone、fetch、pull
下一篇
Day29| 整理 GitHub 個人首頁!建立 Profile README 與釘選專案
系列文
從零開始將作品整理成GitHub履歷 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言