Git重置(撤消、丢弃)文件变更

2020-11-30  本文已影响0人  科研者

在使用Git中,我们经常需要撤消更改,本文件详细讲解撤消文件更改的几种方式

目录

内容

在Git中,有以下几种方案可以实现 丢弃文件变更(即:撤消文件更改):

各个方案的详细原理和使用方式如下:

1. restore

restore 命令主要用于恢复 工作区 和 暂存区 中的文件变更;所以,它是专为丢弃文件变更而设计的命令;

使用方式如下:

语法:

git restore [-S | --staged] [-W | --worktree]  [-s <tree> | -source=<tree>]  文件……

示例:

# 将暂存区 和 工作区中的 文件1.txt 都恢复
git restore -SW 文件1.txt

# 将所有的 `.c` 文件在工作区的中更改还原到 branch1 分支的状态
git restore '*.c' -s branch1

2. checkout

checkout 命令主要作用是用来签出指定分支的;但也可以用来签出指定的文件,我们可以利用这个特性来实现丢弃文件变更;

将指定的文件签出到指定提交的版本;
语法:

git checkout [提交] [--] 文件……

示例:

# 将 工作区 中 文件1.txt 和 文件2.txt 的更改恢复到 当前暂存区中的状态
git checkout 文件1.txt 文件2.txt

# 撤消 文件1.txt 和 文件2.txt 的变更,并取消暂存 文件1.txt 和 文件2.txt
git checkout HEAD -- 文件1.txt 文件2.txt

3. reset

reset 命令的作用是将 HEAD 重置某个提交,它操作的目标是提交历史;但该命令有个特性是可以将重置的变更(即重置后丢弃的变更)放在 暂存区 或 工作区中,也可以完会丢弃 并 重置暂时区 或 工作区;利用这个特性,我们可以实现丢弃文件变更的效果;

3.1. 思路

将当前 HEAD 重置到当前 HEAD,即不改变 HEAD 的位置,根据需要选择将 暂存区 或 工作区 重置到 HEAD 的状态;

3.2. 方案

示例:

# 取消暂存 文件1.txt 文件2.txt
git reset HEAD 文件1.txt 文件2.txt

# 把所有暂存的文件都取消暂存
git reset HEAD
上一篇下一篇

猜你喜欢

热点阅读