git - `git rebase` 没有更新分支?

标签 git rebase

我有这个:

        master
        |   foo
        |   |
        v   v             bar
A---B---C---D             |
             \            v
              \---E---F---G

我想要这个:

        master
        |   foo
        |   |
        v   v         bar
A---B---C---D         |
         \            v
          \---E---F---G

所以认为我需要这样做:

git checkout bar
git rebase master

但 Git 不这么认为:

Current branch bar is up-to-date.

并让一切保持原样。

我需要运行什么才能让 Git 执行我想要的操作?

最佳答案

您正在执行的 git rebase 版本会获取分支 bar 上尚未在 master 上的所有提交,并且将它们写入master。这是从 DF 的提交,这不是您想要的,因为它不会跳过提交 D。一种解决方案是使用 --onto 标志:

git checkout bar
git rebase --onto master foo

此版本的 rebase 将获取分支 bar 上但不在分支 foo 上的所有提交,并将它们重写到 master 上。这将准确地生成您想要的 bar 历史记录。

关于git - `git rebase` 没有更新分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192249/

相关文章:

javascript - 如何使用提交版本更新本地路径?

xcode - 我的 Github 贡献没有显示在 xcode 8 的图表上

git - ToolTwist Controller 不会从 github 下载分支

Git:如何跳到 rebase 的末尾并保留到目前为止的所有更改?

git - 在一个 rebase 后 merge 来自相似分支的选定文件

git - 当 gitlab-CI 管道失败时阻止提交

css - 如何在git中处理scss和css?

git rebase 致命 : Needed a single revision

git - 将最新提交拆分为多个分支

带有冲突的 git rebase 不起作用