如何在Git存储库中还原已删除的提交

时间:2019-02-16 04:16:19

标签: git

在小组项目中,如果开发团队的一个成员使用命令删除了一些提交,

<img>

然后使用

将其推送到仓库
git reset --hard commit-number

通过执行此操作,将在远程存储库中删除在指定的“提交编号”之后进行的提交。

现在如何找到删除它的人以及如何恢复那些删除的提交?

注意:在这种情况下,没有开发人员会主动接受他的错误,因此很难通过讨论来发现它。有没有办法回溯并找到删除它的开发人员的用户名?

2 个答案:

答案 0 :(得分:0)

请参阅此postthis

要返回到该提交,可以使用reflog查找其引用。

  

参考日志或“ reflogs”记录分支的提示和   其他参考已在本地存储库中更新。

运行此命令:

git reflog

扫描前几项,并找到丢失的提交。跟踪该提交的标识符(可以使用第一列或第二列)。我们将标识符称为“ ID”。

如果自从进行重设以来没有做任何额外的工作,那么您可以:

git reset --hard ID
git push -f origin master

如果自重设以来您还进行了其他工作,则可以像这样重新回到分支机构来进行挑选:

git cherry-pick ID
git push origin master

答案 1 :(得分:-1)

要恢复已删除的提交,第一步,您可以检查是否有任何同事仍具有其分支的本地版本。

如果您需要将共享版本还原到重置之前的版本,请确保就谁在其分支机构上拥有预期的版本达成共识,并要求他们git push --force

关于知道谁做的那部分,我建议询问。