撤消对工作副本中文件或目录的更改。
git checkout -- file.txt
从当前目录递归地用于所有文件路径,它将撤消工作副本中的所有更改。
git checkout -- .
若要仅撤消部分更改,请使用--patch。对于每次更改,系统都会询问您是否应撤消。
git checkout --patch -- dir
撤消添加到索引的更改。
git reset --hard
没有该--hard标志,将进行软复位。
使用尚未提交到远程的本地提交,您还可以进行软重置。因此,您可以重新处理文件,然后重新提交。
git reset HEAD~2
上面的示例将展开最后两次提交,并将文件返回到您的工作副本。然后,您可以进行进一步的更改和新的提交。
请注意:所有这些操作,除了软重置外,都将永久删除您的更改。为获得更安全的选择,请分别使用git stash -p或git stash。您以后可以使用撤消stash pop或永久删除stash drop。