今天和公司同仁,一起討論多人開發協作的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 分支 記得在到後台 開啟可以接受分支強推喔