Git 如何修复错误重置的后果?

Git 如何修复错误重置的后果?,git,version-control,Git,Version Control,情况是这样的。我对我的分支和origin/master进行了合并(在图片上提交80d0e2b),并将更改推送到远程服务器。合并看起来很糟糕,我决定应用git reset HEAD~1将其从服务器上删除(是的,我很愚蠢)。现在我遇到了这样的情况,当一些提交(例如,MOB-25)无法从任何分支访问时,commit 2e4df35被称为最后一个 我考虑将原点/主点更改为指向MOB-25,然后再次应用fetch和make merge 我还发现这个线程建议使用reflog(),但我想100%确定。解决这个

情况是这样的。我对我的分支和origin/master进行了合并(在图片上提交80d0e2b),并将更改推送到远程服务器。合并看起来很糟糕,我决定应用
git reset HEAD~1
将其从服务器上删除(是的,我很愚蠢)。现在我遇到了这样的情况,当一些提交(例如,MOB-25)无法从任何分支访问时,commit 2e4df35被称为最后一个

我考虑将原点/主点更改为指向MOB-25,然后再次应用fetch和make merge

我还发现这个线程建议使用reflog(),但我想100%确定。解决这个烂摊子的最好办法是什么?

您唯一的选择是使用git reflog来查找您所进行的sha1提交的历史列表。。。还有你的备份

一旦找到了所需的提交,就可以从中添加标记或分支,使其显示在日志中

见鬼,如果需要,用不同的标记标记所有指示“MOB-25”的reflog行,并使用gitk或您首选的git程序查看修订树。当你找到你想要的,请随意删除它们

要查看reflog,请执行以下操作:

git reflog
要创建标记,请执行以下操作:

git tag MOB-25a theSha1
要创建分支,请执行以下操作:

git branch theSha1 MOB-25a

你能提供命令吗?@Andrew Aylett:谢谢你的编辑,错过了,很抱歉。因此,我创建了一个指向上次丢失的提交的分支,然后我可以将其与当前提交合并。是这样吗?我们为什么需要标签?这些标签仅供参考。请随意创建分支,或者记住sha1或其他任何东西。@Andrew Aylett:damluar希望“100%确定”它是重复的但是是的,它是复制品。值得一提的是,这是一个比简练的原文更好的问题,虽然原文有更好的答案。。。