Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git合并出错,奇怪的历史_Git_Github_Git Merge - Fatal编程技术网

Git合并出错,奇怪的历史

Git合并出错,奇怪的历史,git,github,git-merge,Git,Github,Git Merge,我从事这项github回购: 开发部门的历史有点不可靠。事情是这样的: 一个环境糟糕的人推了一些1970年的承诺 人员B试图将其“脆弱”分支合并到develop中,并推送到github。但事情发生了:;似乎回购协议上的每一项承诺都被推了出来 现在的历史很奇怪,例如;您可以看到从2008年开始的第一次提交,接着是混乱的环境1970次提交,接着是(在下一页)最近的提交,这应该是历史的尖端 所以我有两个问题: 到底发生了什么?我猜合并被1970年的承诺搞砸了,但我不确定 “修复”事物的最佳方式是什

我从事这项github回购:

开发部门的历史有点不可靠。事情是这样的:

  • 一个环境糟糕的人推了一些1970年的承诺
  • 人员B试图将其“脆弱”分支合并到develop中,并推送到github。但事情发生了:;似乎回购协议上的每一项承诺都被推了出来
现在的历史很奇怪,例如;您可以看到从2008年开始的第一次提交,接着是混乱的环境1970次提交,接着是(在下一页)最近的提交,这应该是历史的尖端

所以我有两个问题:

  • 到底发生了什么?我猜合并被1970年的承诺搞砸了,但我不确定
  • “修复”事物的最佳方式是什么?我知道你真的无法取消推;我基本上希望历史能像发生这件事之前那样发展。为了达到这个目的,我可以在回购协议上做一些奇怪的手术

  • 这就是我想出来的

    合并进行得很顺利——合并不依赖于时间戳(例如,
    git日志——日期顺序
    显示合理的顺序)。但是历史看起来很奇怪,因为时间戳决定了(除其他事项外)默认的提交顺序出现在git日志中,显然还有GitHub中的提交比较视图

    这就是我所做的:

    • 从合并发生之前的我的
      develope
      分支开始(该分支有1970个提交)
    • 基于
      develope
      创建了一个新分支
    • 在开发时运行git reset--hard,返回到第一次提交的父级
    • 以交互方式将新分支重新设置为develope,为我想要更改日期的所有提交选择“编辑”,并为它们选择合理的日期
    • 已删除github上的开发分支
    • 将新的开发分支推到github
    这似乎工作得很好,尽管我不得不指示人们在提取之前要小心(要么克隆一个新的回购协议,要么重置回我在重定基址之前所做的相同承诺)