Git合并出了问题,历史记录异常。

3

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

develop分支的历史记录有些混乱。具体情况如下:

现在历史记录很奇怪,例如:https://github.com/Sable/mclab/commits/develop?page=58;你可以看到2008年的第一个提交,接着是出问题的1970年提交,然后(在下一页上)是应该在历史记录顶端的更近期的提交。

所以我有两个问题:

  1. 究竟发生了什么?我猜测合并过程中1970年的提交出了问题,但我不确定。
  2. 最好的“修复”方式是什么?我知道你无法真正撤销一个推送;我只想让develop的历史记录看起来像之前那样。我可以通过对仓库进行奇怪的手术来实现这一点。
1个回答

1
这是我找到的答案。
合并进程顺利完成 - 合并不依赖于时间戳(例如,git log --date-order 显示出一个合理的顺序)。但是由于时间戳决定了提交在git log和GitHub中默认的呈现顺序,因此历史记录看起来很奇怪。
这是我的做法:
  • 从合并之前的develop分支开始(其中包含1970年的提交)。
  • 基于develop创建了一个新分支。
  • 在 develop 上运行 git reset --hard,返回到第一个1970年提交的父级
  • 交互式地将新分支重新设置到 develop 上,选择要更改日期的所有提交的“编辑”并为其选择合适的日期
  • 删除 GitHub 上的 develop 分支
  • 将新的 develop 分支推送到 GitHub 上
这似乎已经成功,尽管我必须告诉人们在拉取之前要小心(要么克隆一个全新的 repo,要么重置到我 rebase 前相同的提交)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接