Git add操作后如何回退文件至先前状态?含未add时操作确认
嘿,刚好我对Git的文件回退操作挺熟的,来给你掰扯清楚这两种场景:
一、未执行
git add时的回退方法 完全可以用git checkout -- file.txt来实现回退!这个命令的作用是把工作区里的该文件恢复到和暂存区(或者HEAD提交,如果暂存区没修改的话)一致的状态。因为你还没执行git add,暂存区里的文件内容和最后一次提交(HEAD)是一样的,所以执行这个命令后,你刚才对file.txt的编辑就会被覆盖,回到修改前的状态。
另外,Git 2.23版本之后官方更推荐用git restore file.txt这个命令,功能和上面的checkout完全一致,语法更直观好记。
二、执行
git add后的回退方法 这时候分两步操作就能搞定:
- 先把文件从暂存区撤回到工作区(也就是撤销
git add的操作),用命令:git reset HEAD file.txt。执行完这个,你之前add的修改就会回到工作区,暂存区恢复到和HEAD一致的状态。 - 然后再用之前的
git checkout -- file.txt或者git restore file.txt,就能把工作区的修改也回退掉,彻底回到文件修改前的版本。
如果你用的是Git 2.23+版本,也可以一步到位:git restore --staged --worktree file.txt,这个命令会同时撤销暂存区和工作区的修改,直接把文件恢复到HEAD的状态,不用分两步操作。
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

