撤销git commit / git add 操作

Git仓库有四个部分:工作区、暂存区、本地仓库(commit历史)、远程仓库

  1. 工作区: 用户当前编辑的内容 是在工作区,通过 git add 将工作区内容提交到 暂存区;
  2. 暂存区: git add 之后的修改保存在 暂存区,暂存区内容 通过 git commit 提交到 本地仓库;
  3. 本地仓库: git commit 后的内容存储在本地仓库,在这里可以通过 git log 查看 commit 历史记录,本地仓库内容 通过 git push 提交到远程仓库
  4. 远程仓库: git push将本地仓库的修改,推送到远程仓库

一、撤销 git add 后的内容:

1. git checkout [file] : 将暂存区的指定文件,恢复到工作区 (本地修改内容会被 暂存区内容替换)

示例:
先新建 test.js 内容如下:

	// test.js
	let desc = '这是测试内容'

先使用 git status 查看本地修改:
撤销git commit / git add 操作_第1张图片
可以看到有一个新建文件 test.js,我们使用 git add 将它添加到 缓存区:
撤销git commit / git add 操作_第2张图片
接下来我们将 test.js 内容更改为:

	// test.js
	let desc = '111111'

使用 git status 查看:
撤销git commit / git add 操作_第3张图片
接下来使用 git checkout test.js 恢复到工作区:
在这里插入图片描述
此时,test.js 内容已恢复为:

	// test.js
	let desc = '这是测试内容'
2. git checkout [commit] [file]: 恢复某个commit的指定文件到暂存区和工作区
3. git checkout . :恢复暂存区的所有文件到工作区

二、撤销 git commit 后的内容:

1. git reset [file]:

重置暂存区指定文件,与上一次commit保持一致,但工作区不变

2. git reset --mixed:

不删除工作空间改动代码,撤销commit,并且撤销git add 操作
这个为默认参数,git reset --mixed 和 git reset 效果是一样的

3. git reset --soft:

不删除工作空间改动代码,撤销commit,不撤销git add

4. git reset --hard: 重置暂存区与工作区,与上一次commit保持一致

删除工作空间改动代码,撤销commit,撤销git add;

你可能感兴趣的:(Git,前端,git,javascript)