Skip to content

git該如何使用rebase

Published: at 下午11:16

今天和公司同仁,一起討論多人開發協作的git操作方式

紀錄一下過程

當今天有一任務 假設為 featureA

分派給五個 pg

五個 pg 就都會在自己的 名稱repo 下 fork 分支

任務是

PG1 = featureA-1 PG2 = featureA-2 PG3 = featureA-3 PG4 = featureA-4 PG5 = featureA-5

這樣的互動

且需要 大家的commit 不要太亂 太多 太沒有意義

不要是

[feature] 修改標題 [feature] 改打錯字 [feature] 調整問題 [feature] 開發新增API [feature] 開發修改API

該就是

[feature] featureA-1 功能開發

這樣乾淨整潔

所以就會需要 在 真的將 featureA-1 分支 合併回 featureA 前 要整理好自己的 commit

現在我們帶入 PG1 的視角

星期一

做了三個commit

263ab42d [feature] 修改標題 191e638e [feature] 改打錯字 1104f466 [feature] 調整問題

要下班了 於是把它整理好變成

0c944f9d [feature] featureA-1 功能開發-新增功能

實作

git rebase -i HEAD~3

~3 表示 要整理這三個commit

輸入完之後就會出現 nano 畫面 不要怕

GNU nano 6.2
pick 263ab42d [feature] 修改標題
pick 191e638e [feature] 改打錯字
pick 1104f466 [feature] 調整問題

按 i 進入輸入模式

調整成

GNU nano 6.2
pick 263ab42d [feature] 修改標題
s 191e638e [feature] 改打錯字
s 1104f466 [feature] 調整問題

按ctrl + o 會問你要不要存檔 就按enter

接著 按 ctrl+ x 退出

接著跳出就會再問你要不要調整 commit message

根據需求調整後

一樣

按ctrl + o 會問你要不要存檔 就按enter

接著 按 ctrl+ x 退出

最後就會出現

SuccessFully based and update…

這樣代表 commit 調整完畢

就推上分支喽

git push

如果是第二天 就依樣照表操課

只是最後推送時 如果包含 昨天的commit 就要改成用

git push -f 喔

如果再main 分支 記得在到後台 開啟可以接受分支強推喔