基于压缩代码重基时Git冲突

uelo1irk  于 2023-06-20  发布在  Git
关注(0)|答案(2)|浏览(104)

我会尽可能简单地解释我所理解的问题。
因此,作为一个基础分支,我使用另一个分支(非主分支),其中包括我需要的更改。
但是当base分支合并到master,当我想用master变基时,我面临40多个步骤git rebase --continue,大多数文件都是一样的,出现在--continue命令之后。例如,在1或2个--continue命令之后,具有确切冲突的确切文件再次出现。这些是我不碰的线。
我认为它出现的原因是因为在master上它被压缩了,但在我的代码中,这些是在单独的提交中。但是,它仍然没有向我解释为什么我一遍又一遍地得到相同的冲突文件。
git rebase --skip是否可以运行所有40+,或者我应该手动更新所有这些以选择current changes?因为主机上的代码显示为current冲突。
处理这种冲突的最好方法是什么?
我看到了关于--skip的帖子日志,但他们没有回答我的问题。我有点担心如果skip会跳过来自master的实际提交,并且在diff中不可见,当我将分支合并到master时,它会删除master分支中的提交和代码。
在标题上,它可能不是超级有助于理解,所以我,你建议我可以改变它根据。

xuo3flqw

xuo3flqw1#

这是squash merge的一个不幸的副作用:关于哪些提交被合并的信息不会单独保存在git中。
你可以通过找出你的历史记录中需要重定基的部分来重定基你的工作:

  • 在分支的历史记录中,找出哪些提交合并到master中
  • 写下该提交的<sha>
  • 运行git rebase --onto master <sha> my-branch
ni65a41a

ni65a41a2#

我所做的是创建一个新的分支,并从那个分支中复制旧的提交,因为它在rebase上有问题。它的工作和预期的一样

相关问题