我用Git错误地删除了大部分文件,有没有办法恢复?

yhxst69z  于 2023-04-04  发布在  Git
关注(0)|答案(3)|浏览(157)

我试图从命令行更新GitHub存储库,现在我的大部分文件都不见了。我使用VSCode打开了包含我的项目的文件夹“2022 Portfolio”,并在VSCode中的终端运行了一些命令。
我跟随YouTube上的一段视频,使用命令行将代码上传到GitHub。我遵循了我认为是常用的命令,我认为在我陷入困境之前运行的最后一个命令是:git push -u origin main To https://github.com/matthewlieb/2022-portfolio.git
返回以下error: error: failed to push some refs to 'https://github.com/matthewlieb/2022-portfolio.git'
在此之后,我转向ChatGPT寻求帮助,我认为这就是我遇到麻烦的地方。我有整个对话,但我在与聊天机器人来回运行后运行的命令(其中包括导致下一个命令的错误)如下:

git push origin main
git config pull.rebase false
git pull --allow-unrelated-histories origin main

现在,我所有的文件都丢失了。我不知道如何恢复备份或做什么。任何帮助或建议将非常感谢,我可以根据需要提供任何其他信息。

c0vxltue

c0vxltue1#

请不要用这种方法开始木材工作:)
好消息!使用git真的很难丢失文件。作为第一React,请转到git reflog:它将列出您在本地去过的所有以前的阶段。例如:

$ git reflog
341b480 (HEAD -> feature/49-uninstall-script, origin/feature/49-uninstall-script) HEAD@{0}: commit: fixup! fix authelia rsa command
353f80e HEAD@{1}: commit: fix authelia rsa command
3a79235 HEAD@{2}: commit: fixup! unrelated fix: sync authelia version
e951e1f HEAD@{3}: checkout: moving from develop to feature/49-uninstall-script
0e39f52 (origin/develop, origin/HEAD, develop) HEAD@{4}: checkout: moving from feature/49-uninstall-script to develop

从这个地方的历史中,找到一个看起来很有希望的,并检查一下:

$ git checkout HEAD@{42}

从那里,你有一个处于正确状态的工作目录。现在是学习如何使用git as正确地将这个本地状态推送到origin的好时机。

bttbmeg0

bttbmeg02#

我认为当您执行git pull时,您错误地处理了冲突,导致远程存储库的内容覆盖了本地存储库。
您应该使用git log命令检查您的最后一次提交,然后使用git checkout commitid恢复它。
如果您是初学者并且不想处理冲突,那么可以使用git push -f强制本地存储库覆盖远程存储库。
这是一个简单的方法,但我认为你应该学习如何处理git冲突。

4ngedf3f

4ngedf3f3#

我还想澄清一下,我所有的文件都从我的桌面,文档等中消失了,而不仅仅是来自git仓库的文件。
这不应该发生,除非你有一个Git仓库(直接在%USERPROFILE%C:\Users\yourLogin)中的一个隐藏的.git文件夹)。
如果是这样的话,那么从Git仓库的实际根目录(%USERPROFILE%)尝试git reflog命令,并使用git reset --hard -- anOldSHA尝试恢复文件,假设它们是在Git仓库中提交的。

相关问题