git从本地拉取已删除的文件

git从本地拉取已删除的文件,git,Git,在向上游回购推送新的承诺时,我遇到了一个错误,在推送之前需要拉取新的更改,但这导致丢失了一些更改 我执行的命令是: git重置-硬头@{12} 在本例中,列出执行git reset-hard之前的可能状态git reset-hard HEAD@{12} 除了12个可恢复的提交之外,关于您的其他更改: 您只是做了更改,没有执行git添加或git提交 恢复:您无法恢复这些更改,因为它不存在于git记录中。不过,您可以尝试为intellij:集成本地备份副本 您只是使用git add添加了它,但没有提

在向上游回购推送新的承诺时,我遇到了一个错误,在推送之前需要拉取新的更改,但这导致丢失了一些更改

我执行的命令是:

git重置-硬头@{12}


在本例中,列出执行git reset-hard之前的可能状态git reset-hard HEAD@{12}

除了12个可恢复的提交之外,关于您的其他更改:

您只是做了更改,没有执行git添加或git提交

恢复:您无法恢复这些更改,因为它不存在于git记录中。不过,您可以尝试为intellij:集成本地备份副本

您只是使用git add添加了它,但没有提交它

恢复:不保证,但你可以尝试恢复


git add之前进行的更改应该可以从索引对象中恢复,因此如果可以,请使用git fsck-lost-found来定位与其相关的对象。这会将对象写入.git/lost-found/目录;在那里,您可以使用gitshow查看每个文件的内容。 如果幸运的话,您的IDE进行了备份,您可以检查IDE是否救了您的命intellij:

您使用git提交了更改

恢复:是的,在这种情况下您可以恢复。使用:

获取提交的提交哈希。 然后使用:

git reset --hard <commit-retrieved-using-reflog>

git reset-hard是一个潜在的危险命令,因为它会丢弃所有未提交的更改。为了安全起见,在使用git status之前,应该始终检查它的输出是否干净,即是否为空。您是否添加/提交过更改?如果在使用git reset-hard之前没有添加/提交更改,很遗憾,没有办法将更改恢复,因为git从未跟踪过它们。我添加了git。以前阶段的更改git add应该可以从索引对象中恢复,因此如果您添加了,请使用git fsck-lost found来定位与其相关的对象。这会将对象写入.git/lost-found/目录;在那里,您可以使用git show查看每个文件的内容。。参考:@RajniKewlani仍然找不到我的文件。。我认为它永久地删除了文件。F**ck real,这么多小时过去了,我很生气。如果你在失物招领中找不到它,并且你在IDE备份中没有它,那么试着在IDE备份eclipse/intellij等中找到它,保留一些临时备份副本,然后据我所知,不幸的是它丢失了:我只想补充一下,因为OP确实重置了git-硬头{12}至少可以使用reflog恢复最后12次提交@珍妮特A,这本书读起来有点烦人。您要查找的是一行,其内容类似于reset:moving to HEAD@{12}。下一行将包含您感兴趣的提交哈希。
git reset --hard <commit-retrieved-using-reflog>