Visual Studio 2022 Git 错误 如何撤销所有本地更改

3

我搞砸了!如何撤销所有更改,包括项目和文件系统的删除和添加,以使用VS 2022将我的本地仓库与远程仓库同步?

如何将我的本地仓库恢复到所有更改之前的原始状态?我从未暂存或提交任何内容。如果不可能,下一步该怎么做?我希望不必推送任何更改,因为我没有想要保留的更改,但我不确定是否可能。


1
老实说,最简单的方法就是删除整个本地解决方案文件夹,然后重新检出所有内容。 - user585968
Micky,你是指删除解决方案文件夹然后运行git clone,还是指git checkout。我认为git checkout是用于切换到另一个分支的? - MattoMK
是的,删除包含解决方案和其他所有内容的本地存储库文件夹。因此,如果您将名为Sheep的远程Git项目克隆到c:\Dev\Sheep中,并且您的**.sln位于c:\Dev\Sheep\src\Sheep.sln中,则删除文件夹c:\Dev\Sheep**以及所有子文件夹。早些时候我说的“check out”实际上是指“clone”。 - user585968
1个回答

1

这将涵盖CLI指令,因为我不熟悉Visual Studio界面。您可以在终端中输入命令。确保您的当前工作目录设置为本地存储库的根目录。


如果您的目标只是恢复到远程上的精确副本,那么这应该相当简单。

在执行命令之前,请确保这正是您想要做的。恢复数据可能很困难或不可能。

首先,重置存储库中的所有已跟踪文件。这将重置除您创建的任何新文件以外的所有修改/删除的文件。

git reset --hard origin/main

更多信息:https://git-scm.com/docs/git-reset

如果你的远程名称或分支名称不同,请使用这些值代替。你可以使用git remotegit branch来检查仓库中远程和分支的名称。

现在删除仓库中所有未跟踪的文件,即你创建但尚未提交的新文件:

git clean -f

更多信息:https://git-scm.com/docs/git-clean

虽然这不是问题的一部分,但以防万一。

如果您发现意外删除了需要恢复的本地提交,请立即停止操作,使用git reflog进行恢复!

如果您意外删除了从未提交过且需要的文件,则Git无法帮助您。 您需要寻找用于恢复已删除文件的软件,结果可能会有所不同。


谢谢。在你回答之前,我运行了git clean -n来查看它会删除什么。它只有48个项目中的39个文件。但是我没有被暂存的文件。每个在git status中的文件都是未跟踪的,因为我从未执行过git add。我认为我应该只运行git clean -f。但是,git clean-n与status之间的差异显示了不同的文件,可能是一些文件夹。所以现在我想确实应该是git reset --hard origin/main - MattoMK
我注意到的另一件事是,Visual Studio在解决方案资源管理器的git部分中显示“更改(83)”。对我来说,这似乎很奇怪。 - MattoMK
一定是删除操作。我忘了它会追踪所有的东西! - MattoMK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接