关于 git rebase 在工作中遇到的问题,请教一下各位。

2021-08-11 20:17:36 +08:00
 uselessVisitor

准备

准备masterdevelop两个分支进行模拟日常工作,develop表示为我的当前开发分支,master表示主分支。

他们的分支提交树如下

master&origin/master

A--B--C

develop&origin/develop

A--B--C
        \
         \
          D--E--F

开始开发

develop提交了 1 个请求G,并推送到了origin-develop

master&origin/master

A--B--C

develop&origin/develop

A--B--C
        \
         \
          D--E--F--G

有人合并到了 master

这里简单搞成直接 push 的 master

master&origin/master

A--B--C--H

develop&origin/develop

A--B--C
        \
         \
          D--E--F--G

我发现了,然后 rebase 到我的 develop

master&origin/master

A--B--C--H

develop

A--B--C
       \
        \
         D--E--F--H--G

origin/develop

A--B--C
       \
        \
         D--E--F--G

这里由于 rebase 变基后,H反而成为了G的父亲,那么问题来了,此时的origin/develop的提交树就与develop不一致了。

那么我该如何做呢? Idea 会提示让我去先pull然后遇到问题后merge,这会导致重复提交的问题。

我只知道一种可以解决的方法,那就是push -f

有没有更好的解决方案呢?

734 次点击
所在节点    问与答
1 条回复
AoEiuV020
2021-08-11 21:20:17 +08:00
一开始就不该 rebase,本来 rebase 就是配合 force 用的,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX