簡體   English   中英

在 Git 中,當源分支歷史記錄已更改時,如何從功能分支變基?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM