这是我的问题:
1.我分支出master
,将分支命名为other_branch
。
1.我在我的分支上工作了很长时间,每天都要重新定基
1.我们把这个项目搁置了一个月
1.在此期间,似乎有人直接操纵了master上的git历史。压缩、编辑和删除提交。
1.我尝试用master进行变基,但遇到了大量的冲突--其中大部分涉及到只在我的分支中的文件。有人建议,因为文件不在master上,这当然是一个冲突。我对这种说法感到困惑。
更糟糕的是,这是在147中的第61次提交中。因此,修复冲突,重定基继续,再次修复相同的冲突,冲洗并重复。
我尝试只是一个合并,而不是尝试变基,这似乎工作,但今天早上,当我去做我的日常变基它再次被打破,或者可能仍然和我 * 以为 * 我修复它。
我也试过通过我的分支来压缩提交,但当我得到最后一次合并时,我再也不能压缩任何东西了。我是说,在这种情况下我不能。
下面是我的工作流程:
git checkout master
git pull master
git checkout other_branch
git pull other_branch
git rebase master
字符串
这样我就能避免更多的反对票
我已经在谷歌上搜索了这个问题,没有发现任何可以解决我的问题。
以下是我研究过的东西,没有特别的顺序:
- 确定祖先分支以确保分支正确。
- git在被添加的文件上发生冲突
- git rebase冲突
- 跨合并重定基
- 更改分支祖先
- 一般的git interactive rebase,以确保我没有搞砸。没有。
- 应用git diff的补丁
- 更多的东西...
如果你想知道更多的信息,告诉我
1条答案
按热度按时间ewm0tg9j1#
当你从另一个本地分支开始工作时,最好不要更新另一个本地分支(这里是
master
:无git pull master
)这是因为你不知道 remote
master
是如何发展的(正如你所说:“似乎有人直接操纵了master上的git历史记录。squashed,edited and drop commits.”)当你想对你自己的本地工作分支进行变基时,你只需要对 your commits进行变基,就是在
other_branch
中创建的那个。然后你需要在
origin/master
上重新设置它的基:更新的远程跟踪分支(您的本地master
保持不变,作为您的原始起点)出发地:
个字符
收件人:
型
这样,你就可以确保只在更新后的目标分支
origin/master
上重定基你的提交。完成后,您可以更新您的本地
master
分支,以便为重新定基的分支other_branch
提供一个新的起点。你可以从那里继续工作。
如果你先更新
master
,那么你的rebase将包括无数的提交,从你的other_branch
HEAD一直到被重写的master。型