git 合并中 unrelated-histories问题的产生原因,和处理办法

1,904 阅读1分钟

产生的实例一

这里有一个小“BUG”,创建的顺序未考虑周全。由于分别两端都创建了新库,提交了新的初始版本,这样,当前系统状态是远程端已经有了新版本,不能直接推送(push),要先拉取(pull)数据。另外,拉取合并产生“unrelated-histories”,故还不能直接拉取,要强行拉取(–allow-unrelated-histories)。

正确的创建顺序应该先在Github上创建空库,克隆到本地,在这个克隆的基础上创建分布式版本跟踪系统,把项目添加进去,创建初始版本,再推送,就不会产生一个分支两个不相关的历史了。

问题特征

一个commit,有两个独的,不相关的历史commit

产生原因

  • 主要原因,git的使用没有固定的规范
  • 没有严格规定,版本历史顺序,随意签出,和签入,导致历史混乱
  • 分布式系统,版本历史可来自不同的方向(另外,版本commit本身的质量大小也是没有规范)

解决办法

第一,了解「合并」为何操作; X第二,可否rebase 第三,重建