如何获取分支中的一组提交,并将它们重新设置为临时分支,然后重新设置回主分支?
更多详情-
我的分支 my-branch
依赖于同事应该尽快推送的另一个代码更改 feature1
。
我不想等他,所以我创建了包含所需更改的 temp-feature1
。
我的计划是将 my-branch
rebase 到 temp-feature1
之上,并在 main
包含后再次 rebase 到 main
所需的提交。
这就是我所做的:
开发期间
git checkout main
git checkout -b temp-feature1
# commit temp changes that I want to depend on (feature1)
git checkout my-branch
现在我无需等待大学的 promise 即可发展。
一旦 feature1
merge 到 main
我想我可以简单地做 -
git checkout main
git pull
git checkout my-branch
git rebase main
并从日志中删除我的 temp-feature1
提交,因为它已经在 main
中。
但是,rebase 到 main 返回了
Current branch my-branch is up to date.
并且 temp-feature1
提交仍然存在。
有什么办法可以得到这个工作流程吗?
最佳答案
您想要的工作流程完全正常且正确!问题仅仅是您给出了错误的rebase
命令。你应该说
git rebase --onto main temp-feature1 my-branch
这将仅删除您的 my-branch
分支提交的 temp-feature1
并将它们推到 main 的末尾
.
之前:
A -- B -- C (main) -- H -- I (temp-feature) -- X -- Y (my-branch)
之后:
A -- B -- C (main) -- X -- Y (my-branch)
(PS,您需要停止混淆 master
和 main
,我假设您在说 master 的地方都指的是
。如果您同时拥有 main
main
和 master
,那么您可能会遇到很大的麻烦。)
关于git - 有没有办法暂时 rebase 功能分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71397686/