在 Git 中,撤销修改可以通过多种方式实现,具体取决于你想撤销的修改类型(未提交的修改、已提交的修改、合并等)。以下是一些常用的撤销修改的指令:
撤销未提交的修改
撤销工作区的所有修改:
git checkout -- <file>
这个命令会撤销工作区中指定文件的所有未提交修改,恢复到最近一次提交的状态。如果要撤销所有文件的修改,可以使用:
git checkout -- .
撤销暂存区的修改:
git reset HEAD <file>
这个命令会将指定文件从暂存区移除,但保留工作区的修改。如果要撤销所有文件的暂存修改,可以使用:
git reset HEAD .
撤销工作区和暂存区的所有修改:
git reset --hard
这个命令会将工作区和暂存区的所有修改都撤销到最近一次提交的状态,请慎用,因为它会丢失所有未提交的修改。
撤销已提交的修改
撤销最近一次提交(但保留修改):
git reset --soft HEAD~1
这个命令会撤销最近一次提交,但保留修改在暂存区。
撤销最近一次提交(不保留修改):
git reset --hard HEAD~1
这个命令会撤销最近一次提交,并丢弃所有修改。
使用 git revert 撤销某个提交:
git revert <commit_hash>
1
这个命令会生成一个新的提交,用于撤销指定的提交(通过提交哈希值指定)。适用于已经推送到远程仓库的修改。
撤销合并
撤销合并(但保留修改):
git reset --merge ORIG_HEAD
这个命令用于在合并产生冲突时撤销合并并保留修改。
撤销合并(不保留修改):
git reset --hard ORIG_HEAD