iT邦幫忙

2024 iThome 鐵人賽

DAY 8
1
IT 管理

30天從版控到code review的實踐指南系列 第 8

Day 8. Git 操作入門:建立 PR 範本;程式碼合併 conflicts 如何解決?

  • 分享至 

  • xImage
  •  

為何需要建立 PR 範本?


  • 標準化流程:
    • 每次發 PR 時,團隊成員可按照統一格式撰寫更新的內容。尤其在多人協做的大型專案,統一的 PR 範本,易於團隊成員檢視功能開發資訊。
  • 提高效率:
    • 減少了手動撰寫 PR 描述的時間,有助於更快地提交程式碼及進行審查。
  • 清楚描述變更:
    • 範本通常會包含開發原因、測試、影響範圍等欄位,讓 Code Reviewer能更容易理解該 PR 的處理範疇,減少反覆溝通的時間。
  • 可完整追溯:
    • 範本可以提醒開發者列出必要的開發內容、測試步驟,或是列出關聯的 issue,確保文件完整性,並增加可追溯性。
  • 促進自動化整合:
    • PR 範本中包含如關聯 issue 的部分,這可以與自動化流程(如關閉 issue 或觸發 CI/CD)整合,提升開發工作流程效率。

在 GitHub 建立 PR 範本


建立步驟可參考 GitHub 文件:GitHub Docs-Creating a pull request template for your repository

範本必備項目:

  • PR 類型
  • 內容描述
  • 做了哪些測試
  • 是否有開發共用模組/功能

實際專案 PR 範本:此範本參考Forem 的 Pull Request 範本

<!--ref: https://github.com/forem/forem/blob/main/.github/PULL_REQUEST_TEMPLATE.md?plain=1-->

## What type of PR is this?

- [x] Feature
- [ ] Bug Fix
- [x] Refactor
- [ ] Optimization
- [ ] Documentation Update

## Description
_詳細描述這支 PR 做了哪些事情_

**將這支 PR 所做的事情,取代這段文字,描述越詳細越好。**

## QA Instructions, Screenshots, Recordings

_可以寫下該怎麼測試這個功能(流程、截圖、影片皆可)_

### UI accessibility checklist
_有哪些 UI 設計、共用(沒有的話請刪掉以下選項)_
- [ ] RWD design
- [ ] 新增新的notify公版

## Added/updated tests?
_做了哪些測試,確保功能完整度(至少測三個 & 請更新以下選項)_
- [ ] input用NULL值測試
- [ ] 輸入換行符號,也能正確存到DB
- [ ] I need help with writing tests...

## Related Tickets & Documents
_功能參考文件、相關連結_

合併遇到 Conflicts ⋯⋯


發佈 PR 同時,GitHub 會幫忙檢查內容是否可以合併,若與其他程式碼有 Conflicts,須先請開發人員自行解決,才可交給團隊其他成員進行 Code review。

  • 衝突範例:
    https://ithelp.ithome.com.tw/upload/images/20240922/20169483wqrMBqcVRL.jpg
  • 解決方法
    1. 依據 GitHub 引導步驟回 Local 或是直接在 GitHub 解衝突
    2. 萬一發現衝突數量過多,就只能在 Local 端,將 Remote 的 develop 拉下,合併到此次發 PR 的功能分支解除衝突。
  • 解決衝突後,就可以合併了
    https://ithelp.ithome.com.tw/upload/images/20240922/20169483zlkdCg5dxf.png

Reference



上一篇
Day 7. Git 操作入門:Commit 規則篇。
下一篇
Day 9. Git 操作入門:什麼是 Issue Tracking?
系列文
30天從版控到code review的實踐指南13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言