Git:如何回滚到上次推送/提交

Mik*_*key 18 git version-control

我正在编程.我添加漂亮的代码并提交并将其推送到我的仓库,如:

git add *
git commit
//writes message
git push unfuddle master
Run Code Online (Sandbox Code Playgroud)

现在我进去搞砸一切.我没有发出git命令,因为我推动了美丽.如何让我的本地文件回到提交的内容?

git pull 说我的当地回购是"最新的"

git checkout 垃圾邮件我的屏幕似乎没有任何改变.

要明确:我不是要修改我的远程仓库,只是让我的本地仓库看起来像服务器.

我目前的解决方案是删除文件夹并重新放回仓库.这不可能是正确的.

thr*_*ree 17

您可以重置为HEAD: git reset --hard HEAD

  • 当然,您也可以使用上次的硬盘备份来到达那里:) (2认同)

Ada*_*ruk 9

更新:

最好的方法是

git stash -u
Run Code Online (Sandbox Code Playgroud)

不要

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

这是一个无法撤消的操作,除非你在Mac上使用时间机器或在Windows 8上使用新的备份服务,否则你可以真正地完成你的工作.Linux可能有类似的方案,虽然我不使用它.

如果你还想要忽略文件,你可以

git clean -xdf
Run Code Online (Sandbox Code Playgroud)


ral*_*nja 6

由于您尚未提交任何内容,因此以下命令将重置您修改后的文件:

git checkout .
Run Code Online (Sandbox Code Playgroud)