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

标签 git merge rebase

当我在 feature1 上工作时,在下面的提交点 A 上,我被要求在其上构建另一个 mod。我们称它为 feature1+。这意味着图表看起来像这样:

master: o---o---o---o---o
             \
feature1:     o---e---e---e---O---A
                                   \
feature1+:                          o---c---c---X

现在我想将 feature1+ merge 回 feature1,但我意识到存在于 XA< 的文件之间的变化 是最小的; c 提交中有两个新的跟踪文件。

在此过程中,我开始整合 feature1 上的提交,将 e 提交重新设置为单个 o' 以减少数量of 最后提交给 master。我相信有效的图表是这样的:

master: o---o---o---o---o
             \
feature1:     o---o'---O---A
               \     
feature1+:      o---e---e---e---O---A---c---c---X

但是,这意味着 feature1+ 也会在我运行时将 e 提交转储到 feature1 上:

git checkout feature1
git merge feature1+

这给了我:

master: o---o---o---o---o
             \
feature1:     o---o'---O---A---e---e---e---O---c---c---X

我想添加 c 提交而不重新引入 e 提交。换句话说,将其 merge 回:

master: o---o---o---o---o
             \
feature1:     o---o'---O---A---c---c---X

我该怎么做?当在 A 处的 feature1 中时,我尝试只checkout 来自 c 的新文件,但当然这会在不保留文件历史的情况下提供文件.

最佳答案

在分支上时:feature1 在 A checkout :

执行 git cherry-pick feature1+: A .. X 应该会产生所需的树

master: o---o---o---o---o
             \
feature1:     o---o'---O---A---c---c---X

关于git - 在一个 rebase 后 merge 来自相似分支的选定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34583770/

相关文章:

Git 列出所有分支标签和 Remote ,以及提交哈希和日期?

git - 使用 git-flow 进行持续集成和持续交付

MySQL 将两个表合并在一起

python - git-德威奇 :how to merge or rebase?

git - "fatal: ref HEAD is not a symbolic ref"在交互式 git rebase 期间

Git 将两个相似的存储库 merge 为一个(都增加了冲突)

git - 撤消 master 的 git merge 到功能中

git - merge develop 分支到 master

sql - 可以使用 SQL Server 模拟 ON DUPLICATE KEY UPDATE 的 mySQL 功能

git - git merge 多个分支