各位好
本人在近來在公司需要將專案中某個pull request的commit統合成一個
下圖為pull request,本公司用的是bitbucket
https://ibb.co/6gWQPnf我看了一些網路教學和youtube,仍然想不出解法。我的做法如下:
先在local的branch中執行git rebase -i HEAD~5
在interactive mode中將之前5個commits壓成一個
https://ibb.co/VDqvhxv有時會執行完後會出現conflict。將conflict resolve後使用以下指令push到remote
git push <local_branch>:<remote_name> -f
然而,push 之後,不僅失敗,我看到的還是pull request被decline:
如果我要re-open這pull request,則會出現以下error:
https://ibb.co/sV8P4dW我的mentor是和我說,如果bitbucket的pull request出現大變動時,會自動decline
必須要重新push最新的commit才能解開
請問版上有沒有大神能指點我如何合併bitbucket中遠端pull request的commit?
問題描述不清楚的地方我會再補充,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 108.254.89.199 (美國)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1647318677.A.7C0.htmlxxi5111樓Push -f ? 03/15 12:38
godddddd2樓整合一個commit squash 我都用這個 03/15 12:55
→ ChiuTW3樓push 後的錯誤訊息是什麼? 03/15 12:57
記得本地端沒有看到錯誤,remote端才有出現decline
wulouise4樓一個一個應該用squash吧?不太建議rebase public 03/15 13:03
acgotaku5樓用squash 他就會幫你自動內部rebase了 03/15 13:09
不懂,我在git rebase的裡用的是squash啊(第二張圖)
→ ChiuTW6樓所以 push 沒錯誤,只有 or 被拒絕,而且是說 merge 的 ta 03/15 13:26
→ ChiuTW7樓rget branch 跟 source 一樣新?要不要檢查一下是不是 reb 03/15 13:26
→ ChiuTW8樓ase 的時候出問題了? 03/15 13:26
→ ChiuTW9樓但是為什麼 rebase 過的 branch 可以推上去?應該要被 dec 03/15 13:28
→ ChiuTW10樓line 才對 03/15 13:28
加上 -f 後能push,不過會容易被decline
我大致上follow這個影片的做法
啊,我內文沒寫到,如果用rebase "只"合併兩個local的commit的話再push的話,有時卻
會成功,怪哉!
→ ChiuTW11樓另外 squash 出現 conflict 是不是有調整 commit 順序?還 03/15 13:31
→ ChiuTW12樓是 rebase 的頭跟 PR 裡的不一樣?如果直接 pull PR 裡的 03/15 13:31
→ ChiuTW13樓branch,直接 rebase,應該不會有衝突,這部分是怎麼做的 03/15 13:31
→ ChiuTW14樓? 03/15 13:31
→ ChiuTW15樓換句話說是怎麼把 PR 裡的 commit 撈下來的 03/15 13:32
我是git pull <remote name> <remote branch>,和你說的一樣
acgotaku16樓你要不要先開個branch把會衝突的先merge 03/15 13:42
→ acgotaku17樓不然squash 後產生conflict 不是好事 03/15 13:43
我是用vs code的在做,有看到conflict的話用滑鼠選一選就可以解
我目前還在用簡單的testcase在試.....
→ ChiuTW18樓先都用 cli 不要用 vs code,才可以確定打的指令 03/15 14:20
→ ChiuTW19樓git pull 03/15 14:20
→ ChiuTW20樓git rebase -i (不應該有衝突,有衝突的話可能是解衝突解 03/15 14:20
→ ChiuTW21樓錯) 03/15 14:20
→ ChiuTW22樓git push origin new_branch (推到新的 branch 不要推到 03/15 14:20
→ ChiuTW23樓原本的、不要用 -f) 03/15 14:20
→ ChiuTW24樓開新的 PR 03/15 14:20
這不行,我們公司的人都在PR中討論,相當於一個討論串,不能一直開新的
→ ChiuTW25樓有衝突的話不是衝突解錯,是步驟有錯 XDDD 剛剛在講三小 03/15 14:27
honochung26樓你的pull request怪怪的 03/15 15:06
→ MoonCode27樓你為何不叫你mentor幫你... 03/15 15:44
→ MoonCode28樓自己開一個repo在bitbucket練一下不就好了 03/15 15:45
→ alan529樓bitbucket有設定branch能不能被force update 03/15 16:23
→ alan530樓五樓的意思是 bitbucket可以直接幫你做這件事 03/15 16:28