美文网首页
Git重置(撤消、丢弃)文件变更

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

作者: 科研者 | 来源:发表于2020-11-30 16:45 被阅读0次

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

目录

内容

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

  • restore 命令(推荐
  • checkout 命令
  • reset 命令

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

1. restore

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

使用方式如下:

语法:

git restore [-S | --staged] [-W | --worktree]  [-s <tree> | -source=<tree>]  文件……
  • -S | --staged :恢复暂存区中的文件
  • -W | --worktree : 恢复工作区中的文件;该选项是默认选项,即,若未指定 --staged--worktree,则,默认使用 --worktree
  • -s <tree> | -source=<tree> :指定恢复到哪个提交状态,如果未指定,则默认为 HEAD

示例:

# 将暂存区 和 工作区中的 文件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. 方案

  • git reset --hard HEAD :将 工作区 和 暂存区 都重置到 HEAD 状态;即,撤消 工作区 和 暂存区 中所有的更改
  • git reset HEAD 文件... | git reset --mixed HEAD 文件... :仅将 暂存区 中指定的文件重置到 HEAD 状态;即,取消对指定文件的暂存
  • git reset HEAD | git reset --mixed HEAD :仅将 暂存区 重置到 HEAD 状态;即,把所有暂存的文件都取消暂存

示例:

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

# 把所有暂存的文件都取消暂存
git reset HEAD

相关文章

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

    在使用Git中,我们经常需要撤消更改,本文件详细讲解撤消文件更改的几种方式 目录 1. restore[#1-re...

  • git reset 和revert 比较

    git reset hard:重置索引和工作树。丢弃自从之后对工作树中跟踪文件所做的任何更改。gi...

  • Git 命令的正确使用姿势

    常用git操作 添加所有变更文件到暂存区 git add .添加所有变更文件并提交到本地仓库 gi...

  • git reset 指令

    reset:重置;清零。 git reset 使用场景为丢弃commit后的commit信息、index信息或者源...

  • git command help

    Git命令 查看、添加、提交、删除、找回,重置修改文件 查看文件diff 查看提交记录 Git 本地分支管理 查看...

  • Git学习日记 Day-2

    学习地址 Git设计优秀之处 跟踪管理修改,而非文件 丢弃修改的内容 改乱了工作区的文件,要直接丢弃$ git c...

  • git 放弃本次本地修改

    git checkout . && git clean -xdf参考:[1]git丢弃本地修改的所有文件(新增、删...

  • git命令集合

    查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git show...

  • Git命令

    查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git show...

  • Git常用命令

    查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git sho...

网友评论

      本文标题:Git重置(撤消、丢弃)文件变更

      本文链接:https://www.haomeiwen.com/subject/vjxdwktx.html