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

相关推荐
Smile丶凉轩44 分钟前
微服务即时通讯系统的实现(服务端)----(1)
c++·git·微服务·github
和你一起去月球10 小时前
TypeScript - 函数(下)
javascript·git·typescript
我不是程序猿儿11 小时前
【GIT】TortoiseGit的变基(Rebase)操作
git
yyycqupt18 小时前
git使用(一)
git
Kkooe21 小时前
GitLab|数据迁移
运维·服务器·git
Beekeeper&&P...1 天前
git bash是什么,git是什么,git中的暂存区是什么,git中的本地仓库是什么,git中工作目录指的是什么
开发语言·git·bash
Stara05111 天前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
lsswear1 天前
GIT 操作
git
勋勋勋勋小勋勋1 天前
git分支合并某一次提交
git