[英]In Git, how do you rebase from your feature branch when the source branch history has been changed?
就我而言,我從分支master
分支出來,從那以后我就一直在做這方面的工作。 然而,然后master
壓縮了很多提交,現在最后一個常見的提交——我最初分支的那個——不再存在。
有沒有辦法以盡可能少的痛苦將master
分支重新設置為我自己的分支? 理想情況下,我希望我的功能分支歷史是
Current HEAD of master branch -> my changes (squashed or not)
目前,嘗試簡單地執行git rebase origin/master
會帶來大量發生在master
但不在我本地分支中的文件更改。
問題是您的功能分支包含不再在 master 上的提交,因此 rebase 將這些提交“屬性”到您的功能分支並嘗試將它們應用到 master。 因此,您需要限制應應用的提交范圍。
如果您創建功能分支的點仍在您的 reflog 中,您可以使用--fork-point
讓 Git 自動計算出正確的變基。
git rebase --fork-point origin/master
您可以手動指定應該在多遠的分支上重新定位到 master。
git rebase <hash-of-first-feature-commit> <your-feature-branch> --onto origin/master
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.