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了,连本地工作目录下的对应文件也取消了修改,恢复到上一个提交版本。

相关推荐
悟空20165 小时前
001、Git开发流程规范
git
Li小李同学Li5 小时前
git学习【持续更新中。。。】
git·学习·elasticsearch
晨春计7 小时前
【git】
android·linux·git
念幽7 小时前
Git常用命令
git
神技圈子8 小时前
【git系列】git中的那些迷惑的术语以及概念详解
git
benben0448 小时前
Photoshop使用方法大全
git
ou.cs9 小时前
git 删除远程分支的几种写法
git
atlanteep9 小时前
Linux·权限与工具-git与gdb
linux·git
胆小鬼~19 小时前
【DAY20240918】03教你轻松配置 Git 远程仓库并高效推送代码!
git
哆啦安全1 天前
git常用命令(patch补丁和解决冲突)
git