迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 > Git >

Git 中的重置和恢复

作者:迹忆客 最近更新:2023/03/30 浏览次数:

Git 有一些命令可以处理单个文件,但它们很少见。这些命令是 git addgit rmgit mvgit checkoutgit resetgit restore,以及它们各自的对立面。

不过,Git 很聪明。它会记住我们从哪里获取了我们已经获取的工作,以便它可以稍后从下一个获取标记再次获取它。这意味着我们可以拥有一个仅包含我们在本地创建的提交的 Git 仓库。如果我们已经从另一个仓库中获取了相同的提交,Git 可以避免再次获取它们。

在本文中,我们将讨论 Git 的两个重要命令:

  1. git restore
  2. git reset

Git restore 命令

Git restore 命令用于从索引或另一个提交中恢复工作树中的文件。此命令不会更新当前分支。它还可以从另一个提交中恢复索引中的文件。如果我们想使用与当前分支上的提交不同的提交中的代码,这将非常有用。restore 命令有助于丢弃本地分支中未提交的本地更改。

Git restore 可以在三种不同的情况下使用,具体取决于当前情况,我们是否希望恢复工作副本或索引中的工作,或两者兼而有之。

git restore [--worktree] <file>

上面的命令将覆盖我们工作副本中的 <file> 以及索引文件中的内容。或者我们可以说它恢复了我们在工作副本中所做的更改。我们是否指定它并不重要,因为如果我们不另外说,它是建议性的。

git restore --staged <file>

上面的命令将使用本地仓库中的当前 HEAD 覆盖索引文件中的 <file>。或者我们可以说未提交的更改最近上演的内容。如果我们说它确实等于旧的 git reset HEAD <file>,那不会错。

git restore --staged --worktree --source HEAD <file>

如上所述,要使用当前 HEAD 覆盖工作副本和索引,我们使用上述命令。这个版本将能够做到这两点:将我们的工作副本恢复到 HEAD 以及从当前本地分支恢复未暂存的最近暂存的工作。


Git 重置命令

Git reset 是关于更新我们的分支,移动提示以从分支中添加或删除提交。此操作更改提交历史记录。Git reset 用于恢复索引,与 Git restore 重叠。如果文件被更改,无论是通过使用手动编辑还是通过 git add 方法,git reset 都不能很好地处理它。

该文件被复制到新提交,然后在旧提交中标记为已删除。它会发出警告,表明该文件似乎已从工作副本中删除。Git reset 也不能​​很好地处理重命名。这并不意味着删除文件并添加同名文件,但确实如此。

reset 命令不能用于移动工作副本中的文件。这些文件不仅被复制到不同的提交;它们从工作副本中删除并在目标提交中恢复为新文件。当我们对文件进行了不必要的更改时,没有必要删除该文件。我们可以撤消对文件的所有更改,但它不会撤消文件本身。


git resetgit restore 之间的区别

restore 命令帮助我们取消暂存或丢弃未提交的本地更改。它可用于从索引或其他提交恢复工作树中的文件。此命令不会更新我们的分支。从另一个提交中恢复索引中的文件也很有帮助。

Git reset 用于更新当前分支。恢复索引也很有帮助,与 git restore 相交。Git reset 用于重置索引以丢弃工作树中的更改。此命令不会更新我们的分支。它主要与 --soft 选项一起使用,该选项仅重置索引并保持工作树不变。如果我们暂存了不想丢弃的更改,这将很有用。

如果工作目录是干净的(没有要提交的更改),Git reset 将成功完成,而如果工作目录是干净的,则 Git Restore 将失败。两者都会影响 HEAD。然而,Git restore 只会通过暂存区间接影响 HEAD。Git reset 可以直接使用索引和 HEAD。两者都会影响 HEAD。Git restore 只会通过暂存区间接影响索引和 HEAD。

仅当我们还没有推送任何内容时,Git reset 才能用于修改本地仓库。如果我们已经推送到远程服务器,git-reset 将修改暂存区和工作副本,但不会修改仓库。如果我们想撤消本地更改但不想再次重新引入它们,这很有用。

Git restore 是相反的,因为它只能用于修改我们的仓库,而不是暂存区或本地工作副本。它不会影响我们推送的任何提交。

上一篇:Git 撤消合并

下一篇:撤消 Git 中的更改

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Windows 系统中卸载 git

发布时间:2023/04/09 浏览次数:223 分类:Git

在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。

如何检查 Git 的版本

发布时间:2023/04/09 浏览次数:160 分类:Git

在这篇检查Git最新版本的文章中,我们将学习如何在本地个人计算机或任何服务器上检查Git版本。

Git 如何重命名本地分支

发布时间:2023/04/09 浏览次数:64 分类:Git

大多数情况下,重命名分支机构是由于上述情况。 因此,在本教程中,我们将学习使用下面提到的技术更改本地 Git 分支的名称。

重命名 Git 存储库中的文件和目录

发布时间:2023/04/09 浏览次数:102 分类:Git

在本文中,我们将讨论 git 中的重命名过程。 我们使用 Git Rename 来更改工作目录中文件和文件夹的名称。

在 Git 中取消初始化存储库

发布时间:2023/04/09 浏览次数:187 分类:Git

本本文介绍如何通过 Git 命令行取消初始化 Git 存储库。git init 命令开发一个新的空置 Git 存储库。 它还用于重新初始化已经存在的 Git 存储库。

Git 仓库名称该如何命名

发布时间:2023/04/09 浏览次数:208 分类:Git

使用 Git 时,选择一个简洁且最新的存储库名称是一项艰巨的任务。本教程介绍了如何以独特的方式命名 Git 存储库。

配置 Git 以忽略文件模式更改

发布时间:2023/04/09 浏览次数:67 分类:Git

本文讨论配置 Git 以忽略文件更改 chmod 所需的步骤。 如果您更改 Git 正在跟踪的文件的权限,系统将在该文件中注册更改。

在 Git 中暂存已删除的文件

发布时间:2023/04/09 浏览次数:93 分类:Git

本文讨论了在 Git 中暂存已删除文件的必要步骤。我们知道 rm 命令可以删除一个文件,而无需将其从工作目录中移除。 那么,我们如何暂存已删除的文件以进行提交呢?

在 Git 中显示冲突文件

发布时间:2023/04/09 浏览次数:139 分类:Git

本文讨论在 Git 中列出冲突文件的最简单和最干净的方法。 我们可以使用 git status 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便