git rebase偏爱我的分支

时间:2011-02-21 17:06:27

标签: git

我和另一位开发人员已经在主题分支topic上工作了几天。我们一直在通过推送和合并来自共享仓库的topic来共享更改。

我们也经常与master合并。所以,现在,我们的日志显示我们的提交穿插了master的后续提交。

我想要改变所以我们的提交都是在主人之后。我们处理的文件中存在大量冲突,但我知道我想在所有情况下都使用topic版本。

我尝试了git rebase -s recursive -X ours origin/master,但其中包括topic版本和master版本,这是非常错误的。我想只包含我工作过的topic版本的文件。

然后我尝试git rebase -s ours origin/master,但这似乎删除了我的提交。

topic

中,有什么方法可以改变,支持我的更改

2 个答案:

答案 0 :(得分:2)

在改变期间,“我们的”和“他们的”被颠倒了。

答案 1 :(得分:2)

不是一个有趣的情况。也许你正在尝试的某些变体会起作用,但我会尝试不同的东西。

让我们调用合并提交M1,M2,...,MN

  1. git reset M1 ^ 1

  2. git rebase M1 ^ 2

  3. 记录结果,例如git tag topic-rebased1

  4. git reset M2 ^ 1

  5. git rebase --onto topic-rebased1 M1

  6. git rebase M2 ^ 2

  7. 返回(3)并重复,直到您重新定位所有合并

  8. 你真正需要的是将来做这件事的策略,不要陷入这种混乱。

    我建议像:

    • 完成您之前所做的工作,除了让一个人负责将主人合并到主题分支

    • 负责合并的人员还设有一个公司。每次他们将master合并到非rebasing分支时,他们还会将最新的更改从非rebased分支重新绑定到rebasing分支,然后将rebase分支重新绑定到master

    是的,我知道 - 很糟糕。