git - 有没有办法暂时 rebase 功能分支?

标签 git

如何获取分支中的一组提交,并将它们重新设置为临时分支,然后重新设置回主分支?

更多详情- 我的分支 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,您需要停止混淆 mastermain,我假设您在说 master 的地方都指的是 main 。如果您同时拥有 mainmaster,那么您可能会遇到很大的麻烦。)

关于git - 有没有办法暂时 rebase 功能分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71397686/

相关文章:

git - 在提交到 master 后如何撤销所做的更改?

git - IAR 项目的典型 gitignore 文件

Git:将本地分支与远程暂存和生产进行比较

ubuntu 20.04 上的 Fish shell 的 git 配置完成困惑

linux - git 命令显示来自 sha1 哈希的分支/功能名称

mysql - 可以使用git同步不同机器上的docker容器吗?

git - Jenkins 配置和安全问题

git - 你的分支和 'origin/master' 已经 fork ,所有冲突都已修复但你仍在 merge

git - 显示哪些文件在两次修订之间发生了变化

git - 什么是 Jenkins /更改页面?