【发布时间】:2015-05-20 03:47:43
【问题描述】:
我会尽量简明扼要地描述我目前的情况,如果你能给我一些建议,我将不胜感激。
我今天早上合并了一个大的功能分支代码,结果发现有一个严重错误。为了撤消它,我的同事在 GitHub 中恢复了合并(有几个提交),在拉取之后,一切似乎都很好。
在对特性分支进行了一些调整之后,我想确保它可以再次进入,所以我在特性分支上使用了“git merge master”(就像我一直做的那样)以确保一切都是最新的。
令人惊讶的是,结果是删除了我需要合并回主存储库的所有新代码!
这是由于分支上发生的还原吗?查看 git 日志,我可以看到所有的提交仍然存在。更奇怪的是,github 中的 pull request 并没有显示 diff 中的任何原始提交,只有我在恢复后所做的更改。
有人可以帮助我理解这一点吗?
我知道有些人建议简单地还原还原,但我需要彻底恢复,因为我所做的更改涉及大部分代码的结构。
【问题讨论】:
-
你好。在您的控制台中尝试
git reflog。它将向您显示对您的仓库所做的全部历史记录(不是分支,而是完整的仓库)。检查所需的时间点并从那里继续。 -
感谢您的评论!就我而言,提交贯穿始终。分支已经建立了几个月,我没有一个干净的地方可以重置。我认为 rebase 是我需要的,只是想弄清楚如何完全删除我从功能分支中再次添加的提交
-
好的,我把它作为答案发布 - 你需要的变基
-
我建议不要在这里变基。更改已发布分支的历史将使您非常不受欢迎。
标签: git github version-control revert