Git撤销add

git要提交版本第一步是add,就算是文件本身已经存在只是修改,也需要添加,即添加到暂存区。其中最偷懒和也保险的命令是:

git add .

即添加了本地(多称工作目录)所有文件。

撤销add有以下文章:

git怎么撤销add-git-PHP中文网

三种方法来取消git add命令-git-PHP中文网

自己见解&稍加说明:

1、git reset是万能的,也是最基本的,即,就是针对add这个操作的取消。理论上,其可以让add取消并将暂存区对应的文件恢复到任何一个历史版本,但是,除了恢复到上次提交的版本(最新的版本),恢复到其他版本也没什么用吧,后面再add了,再提交,还不是最终到最新的版本?并且历史版本记录,也不会有什么不同。

2、git restore:这个命令之前是没有的,所以说用git reset是足够的。这个的意思是,不光将暂存区对应文件恢复add前的版本(即最新/近提交的版本,当然也可以像上面reset一样恢复到任何历史版本),还将工作区的对应文件(也就是本地文件------你本地文件能add,即是和git映射好的)也恢复到最近提交的版本。所以要注意,本地文件如果有修改的,需要保留,则不能直接使用此命令,需要备份,或者用reset。或者,加个参数:--staged 表示只取消add到暂存区,其实就是reset。

3、git rm --cached:其实是git rm的限制用法。是直接在暂存区删除了对应文件,而不是像上面两种是将对应文件恢复到指定版本。此时,如果直接提交(commit),则暂存区中提交版本不再包含对应文件。本地的对应文件还是在的,还是可以通过add,再次添加到暂存区。如果连本地的对应文件都不要了,则直接用git rm 命令。见:

git rm --cached-CSDN博客

4、其实,git reset加参数,也可以实现不仅取消暂存区对应文件,也能取消工作目录的对应文件的修改,见:

git撤销commit操作回到add状态、撤销git add . 的操作_git commit回退到add-CSDN博客

其实git reset默认是git reset --mixed,也同时取消了git commit,如果执行前没有新的commit的话就不起作用,只取消了add。

若只取消commit,则加--soft,但一般很少这样用,add之后肯定要commit,要取消commit的话,也会取消add。

用git reset --hard ,就相当于git restore了,连本地工作目录下的对应文件也取消了修改,恢复到上一个提交版本。

相关推荐
小此方19 小时前
「插曲:Git」企业规范篇:DevOps开发模型、Git Flow五类分支设计与测试/预发布/生产环境Bug修复及Hotfix紧急发布流程
git·bug·devops
溪语流沙19 小时前
【Web全栈进阶】JWT无状态认证:签发、校验、刷新
前端·git·python·github
OsDepK20 小时前
osgit纯图形化git版本管理工具,多人开发团队协作工具,支持Mac与Windows
git
Madison-No71 天前
Git版本控制工具(一)
git
小小小米粒1 天前
重置本地git
大数据·git·elasticsearch
鶴哥只手遮天2 天前
第 8 章 工作区与检出:unpack-trees 与并行 checkout
git
xing-xing2 天前
git 相关命令总结
git
A-刘晨阳2 天前
GitLab + ArgoCD 实现 Kubernetes GitOps 自动化部署
运维·人工智能·git·kubernetes·自动化·云计算·argocd
ControlRookie2 天前
SyncBridge:一个 CODESYS 工程与 AI 之间工程师级的同步工具
git·ai编程·codesys·工业软件·controlrookie
鬼手点金3 天前
opencode-性能优化建议
java·人工智能·git·自动化·nanogpt