首页 > 解决方案 > Git不允许无关的历史

问题描述

为了获得干净的历史记录,我使用以下命令创建了一个空分支:

git checkout --orphan t0

然后我做了第一次提交:

git commit -m "First commit"

t0 现在拥有开发分支的所有代码并且是相同的(源代码明智)

完成工作后,我尝试了拉取请求,但我收到错误,即无法在拉取请求中使用不相关的历史记录。

我试图通过这样做将它合并到开发分支中:

git merge development --squash --allow-unrelated-histories

但我收到这条消息:

Automatic merge went well; stopped before committing as requested
Squash commit -- not updating HEAD

谁能指导我如何解决问题并将我的代码投入开发?

标签: gitgit-branchpull-requestgit-history

解决方案


Git 也完全按照你说的做了。合并进行得很顺利(它甚至在输出中这么说)。它没有提交合并,因为这就是壁球合并的工作方式:

生成工作树和索引状态,就好像发生了真正的合并(合并信息除外),但实际上并不进行提交

来源:https ://git-scm.com/docs/git-merge

您只需要提交暂存文件。要执行正常合并,只需删除--squash标志。

在您的情况下,我不建议进行壁球合并。正常的合并将产生一个带有两个父级的提交,以反映您将两个历史合并在一起的事实。


推荐阅读