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

相关推荐
cs_dn_Jie44 分钟前
mac 通过 Homebrew 安装 git 遇到的问题
git·macos
Wulitc4 小时前
GIT管理指令
git
可涵不会debug8 小时前
Git 分支管理与多人协作实战指南
git
only-lucky10 小时前
Git克隆 提示证书验证失败解决
git
丁总学Java10 小时前
git reset (取消暂存,保留工作区修改)
git
MYG_G10 小时前
git cherry-pick从一个分支中选择一个或多个提交(commit)并将其应用到当前分支
git
DaphneOdera1711 小时前
Git Bash 配置 zsh
开发语言·git·bash
半桔13 小时前
栈和队列(C语言)
c语言·开发语言·数据结构·c++·git
van叶~14 小时前
Linux探秘坊-------5.git
linux·运维·git
@PHARAOH1 天前
HOW - 基于master的a分支和基于a的b分支合流问题
前端·git·github·分支管理