各位好
本人在近來在公司需要將專案中某個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?
問題描述不清楚的地方我會再補充,謝謝!
作者:
xxi511 (少北)
2022-03-15 12:38:00Push -f ?
作者:
godddddd (howudoing)
2022-03-15 12:55:00整合一個commit squash 我都用這個
作者:
ChiuTW (Chiu)
2022-03-15 12:57:00push 後的錯誤訊息是什麼?
作者:
wulouise (在線上!=在電腦前)
2022-03-15 13:03:00一個一個應該用squash吧?不太建議rebase public
作者:
acgotaku (otaku)
2022-03-15 13:09:00用squash 他就會幫你自動內部rebase了
作者:
ChiuTW (Chiu)
2022-03-15 13:26:00所以 push 沒錯誤,只有 or 被拒絕,而且是說 merge 的 target branch 跟 source 一樣新?要不要檢查一下是不是 rebase 的時候出問題了?但是為什麼 rebase 過的 branch 可以推上去?應該要被 decline 才對另外 squash 出現 conflict 是不是有調整 commit 順序?還是 rebase 的頭跟 PR 裡的不一樣?如果直接 pull PR 裡的branch,直接 rebase,應該不會有衝突,這部分是怎麼做的?換句話說是怎麼把 PR 裡的 commit 撈下來的
作者:
acgotaku (otaku)
2022-03-15 13:42:00你要不要先開個branch把會衝突的先merge不然squash 後產生conflict 不是好事
作者:
ChiuTW (Chiu)
2022-03-15 14:20:00先都用 cli 不要用 vs code,才可以確定打的指令git pullgit rebase -i (不應該有衝突,有衝突的話可能是解衝突解錯)git push origin new_branch (推到新的 branch 不要推到原本的、不要用 -f)開新的 PR
作者:
honochung (http://lol.moa.tw)
2022-03-15 15:06:00你的pull request怪怪的
作者:
MoonCode (MoonCode)
2022-03-15 15:44:00你為何不叫你mentor幫你...自己開一個repo在bitbucket練一下不就好了
作者:
alan5 (小安)
2022-03-15 16:23:00bitbucket有設定branch能不能被force update
作者: TheWhack (我是德華) 2022-03-15 17:28:00
branch不給force update的話,那就不能rebase+squash了?
作者:
ChiuTW (Chiu)
2022-03-15 21:00:00都忘記 merge 可以 merge squash 了
作者:
mike8469 (mike8469)
2022-03-15 22:06:00local rebase 完以後推新的 remote branch, 不要用-f覆寫掉原本那條, 除非確定那條只有你在用, 推上去後在用新建的 remote branch 發PR 到 master branch 並設定squash merge 應該可以解掉你提到的問題~重看一次發現我理解錯你的問題, -f 被拒感覺跟bitbucket branch permission 設定比較有關
作者:
ChiuTW (Chiu)
2022-03-17 10:18:00再說一次,rebase squash 只要沒有動 commit 的順序就不應該衝突不過都 force push 了除非會 reflog 不然應該沒救了,找 mentor 救你吧