转:【git】取消add、commit操作命令
原博:https://blog.csdn.net/weixin_44147535/article/details/140646056
一. 取消已add的文件
01. 保留工作目录 【变为红色】
git reset D:\workspace\demo\git-demo\src\main\java\com\iteng\git\demo3.java
git reset file1 file2
# 或者
git reset *.txt
02. 从暂存区和工作目录中删除 【文件丢失】
# -f 强制删除
git rm -f <file>
二. 取消已commit的文件
01. 取消最近一次提交(未推送到远程仓库)
使用 git reset
①保留工作目录、暂存区(即只取消提交)------变为绿色
git reset --soft HEAD~1
这会将当前分支回退到上一个提交,但保留所有更改在暂存区。
②保留工作目录(即取消提交、暂存区)------变为红色
git reset --mixed HEAD~1
这会将当前分支回退到上一个提交,暂存区不会被保留。
③文件不保留(即取消提交、暂存区、删除文件)------文件丢失
git reset --hard HEAD~1
这会将当前分支回退到上一个提交,并且丢弃工作目录中的所有更改。
02. 回退到指定的一次提交
git reset --soft abc123
git reset --mixed abc123
git reset --hard abc123
03. 取消已经推送到远程仓库的提交
如果你已经将提交推送到远程仓库,需要更加小心,因为这可能影响其他开发者。以下是一些常用方法:
①使用 git revert
git revert 会创建一个新的提交,撤销指定的提交。这是一个安全的方式,不会影响提交历史。
git revert <commit> //<commit>版本id号
这将生成一个新的提交,用于撤销指定的提交。