我搞砸了!如何撤销所有更改,包括项目和文件系统的删除和添加,以使用VS 2022将我的本地仓库与远程仓库同步?
如何将我的本地仓库恢复到所有更改之前的原始状态?我从未暂存或提交任何内容。如果不可能,下一步该怎么做?我希望不必推送任何更改,因为我没有想要保留的更改,但我不确定是否可能。
我搞砸了!如何撤销所有更改,包括项目和文件系统的删除和添加,以使用VS 2022将我的本地仓库与远程仓库同步?
如何将我的本地仓库恢复到所有更改之前的原始状态?我从未暂存或提交任何内容。如果不可能,下一步该怎么做?我希望不必推送任何更改,因为我没有想要保留的更改,但我不确定是否可能。
这将涵盖CLI指令,因为我不熟悉Visual Studio界面。您可以在终端中输入命令。确保您的当前工作目录设置为本地存储库的根目录。
如果您的目标只是恢复到远程上的精确副本,那么这应该相当简单。
在执行命令之前,请确保这正是您想要做的。恢复数据可能很困难或不可能。
首先,重置存储库中的所有已跟踪文件。这将重置除您创建的任何新文件以外的所有修改/删除的文件。
git reset --hard origin/main
更多信息:https://git-scm.com/docs/git-reset
如果你的远程名称或分支名称不同,请使用这些值代替。你可以使用git remote
和git branch
来检查仓库中远程和分支的名称。
现在删除仓库中所有未跟踪的文件,即你创建但尚未提交的新文件:
git clean -f
虽然这不是问题的一部分,但以防万一。
如果您发现意外删除了需要恢复的本地提交,请立即停止操作,使用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
git clone
,还是指git checkout
。我认为git checkout
是用于切换到另一个分支的? - MattoMK