git - 在这种情况下执行 git-rebase 的正确命令是什么?

标签 git git-rebase

我仍在思考如何使用 git-rebase,我想在实际操作之前仔细检查我打算做什么!

我的 repo 中的相关分支目前如下所示:

o---o---o......   master
         \
          o---o---o---o---o---o---o---o---o   develop
                   \
                    o---o   feature
                         \
                          *   sub-feature

我想实现的是:

o---o---o......   master
         \
          o---o---o---o---o---o---o---o---o   develop
                                           \
                                            o'---o'   feature
                                                  \
                                                   *   sub-feature

我预计不会有任何冲突,因为 feature 分支只删除不再需要的文件,而 sub-feature 分支添加了新文件develop 分支上绝对不存在。

基于git-rebase documentation ,我想我需要从 sub-feature 分支运行以下命令:

git rebase feature

不过我有点不确定,因为我想重新定位到develop 而不是master。考虑到这一点,我想知道是否应该从 sub-feature 分支运行以下命令:

git rebase --onto develop feature

如有任何帮助,我们将不胜感激!

最佳答案

onto 非常强大,但是由于您仍然习惯于 rebase ,并且无论如何此操作都将需要两个步骤(假设您还想更新两个 feature作为 sub-feature) 我会推荐这些步骤:

首先让我们更新功能:

git checkout feature
git rebase develop

最后,更新子功能:

git checkout sub-feature
git rebase feature

这将为您留下您在问题中陈述的树。

关于git - 在这种情况下执行 git-rebase 的正确命令是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34139145/

相关文章:

pull --rebase 后 Git 推送错误

linux - 通过 git 推送文件后如何在 Openshift 服务器上使文件可执行

git - 在 IntelliJ IDEA 中针对 origin/master 重新设置分支

rebase - 如何以尽可能少的冲突将我的功能分支重新设置为 git 中的开发分支?

Git 重写后未执行

具有许多功能分支的故事分支的 Git 模型

git - 如何在 github https 存储库地址上使用 git 和 ssh?

python - 如何在 Coverity Scan 中忽略生成的 cpp 文件(来自 swig/python)?

windows - Windows 命令行 merge 工具

git - 使用 `git rebase` 更改旧提交消息