我从我的代码库中拉取了代码,结果搞糟了一切。我想将整个项目恢复到最近的本地提交状态。应该如何操作?
这将重置到您的当前提交(丢弃所有更改,包括已暂存的和未暂存的更改):
git reset HEAD --hard
这将重置所有内容到之前的提交状态(同时删除所有更改,无论是已暂存还是未暂存)
git reset HEAD^ --hard
在 HEAD 旁边的 ^ 意味着 HEAD 前一个提交,HEAD 是当前所在的位置。您可以使用 ^^ 返回两个提交,或者使用 ^^^ 返回三个提交。此外,您可以使用波浪号来指定提交的数量:~3 表示向后三个提交。
git reset HEAD~3 --hard
请记住,--hard选项意味着这些命令将丢弃您未存储的任何更改。
在 git log
中定位到您最后一次本地提交,然后运行git reset --hard <commit sha1>
。
这会删除您尚未提交的所有本地更改,并将HEAD移动到此提交。
git pull
可以获取并合并多个提交。如果要返回到之前的本地状态(而不是返回 n 个提交),可以使用 reflog。 git reset --hard @{1}
git reset --hard
时附带适当的安全警告,这总是很好的——令人担忧的是,许多StackOverflow答案并没有提供这样的警告... - Mark Longair