Git合并出错了,奇怪的历史

时间:2013-03-25 03:20:10

标签: git github git-merge

我在这个github仓库工作:https://github.com/Sable/mclab

开发分支的历史有点不稳定。这就是发生的事情:

现在历史很奇怪,例如https://github.com/Sable/mclab/commits/develop?page=58;你可以看到2008年的第一次提交,然后是1970年提交的搞砸环境,接下来(在下一页)最近的提交应该是历史的最后一次。

所以我有两个问题:

  1. 究竟发生了什么?我猜这次合并在1970年的提交中被搞砸了,但我不确定。
  2. 什么是“修理”东西的最佳方法?我知道你不能真正撤消推动;我基本上喜欢开发历史,看看它发生之前的方式。我很乐意在回购上做奇怪的手术来实现这个目标。

1 个答案:

答案 0 :(得分:1)

这就是我想到的。

合并很顺利 - 合并不依赖于时间戳(例如git log --date-order显示合理的顺序)。但是历史看起来很奇怪,因为时间戳确定(除其他外)默认订单提交在git log中显示,显然是GitHub中的提交比较视图。

这就是我所做的:

  • 从合并发生之前的develop分支开始(确实有1970次提交)。
  • 根据develop创建了一个新分支。
  • 关于开发的git reset --hard,返回到第一个1970年提交的父级
  • 以交互方式将新分支重新发布到开发,为我想要更改日期并为其选择合理日期的所有提交选择“编辑”
  • 在github上删除了开发分支
  • 将新开发分支推向github

这似乎运行良好,虽然我必须指示人们在拉动之前要小心(要么克隆一个新的回购,要么重置回我在重新定位之前做的相同提交)。