在 Git 中把文件重置为与主分支相同的状态

Ashok Chapagai 2023年9月13日 Git Git Reset
  1. 在Git中将文件重置为master分支
  2. 在Git中将文件重置到特定提交
  3. 结论
在 Git 中把文件重置为与主分支相同的状态

假设在 master 分支中有一个重要的文件,本不应被编辑,但不幸的是,在 dev 分支中已经被编辑和提交了多次。现在你想要放弃对该文件所做的所有更改,并将其状态更改为与 master 分支相同。有一种简单直接的方法可以实现这一点,不会太麻烦。

在Git中将文件重置为master分支

在Git中,git checkout 命令是一个多功能工具,可用于各种任务,包括切换分支、创建新分支、恢复文件等等。

当我们使用 git checkout 命令将文件重置为 master 分支时,实际上是告诉Git用 master 分支中的内容替换当前分支中文件的内容。

现在我们对Git checkout有了基本的了解,让我们通过以下步骤来重置特定文件至 master 分支。

步骤1:打开终端

首先,打开终端或命令提示符。我们将使用Git命令来重置文件,因此有终端是必要的。

步骤2:导航至您的代码库

使用 cd 命令导航至您的Git代码库的目录。例如:

cd /path/to/your/repo

/path/to/your/repo 替换为您Git代码库的实际路径。

步骤3:检查当前分支

在执行任何重置操作之前,请确保您处于要重置文件的分支。您可以使用以下命令查看当前分支:

git branch

该命令将显示一个分支列表,当前选中的分支将以星号(*)表示。

步骤4:执行Git Checkout重置

现在,让我们使用 git checkout 命令将文件重置为 master 分支。使用以下命令:

git checkout master -- file1 file2 ...

file1file2等替换为您要重置的文件的名称。您可以通过用空格分隔它们的名称来指定多个文件。

例如,如果您想要重置名为 file1.txtfile2.txt 的两个文件,命令将是:

git checkout master -- file1.txt file2.txt

git checkout 命令的详细说明

  • git checkout:这是用于各种操作的Git命令,包括切换分支和重置文件。
  • master:这指定您要从中获取文件的源分支。在这种情况下,它是 master 分支。
  • --:这个双连字符用于分隔分支或提交与文件路径。它告诉Git以下项是文件路径,而不是分支或提交。

步骤5:检查状态

重置后,检查您的工作目录状态是一种良好的做法,使用以下命令:

git status

这将显示与 master 分支相比哪些文件已被修改、添加或删除。

步骤6:提交更改

如果您对更改感到满意并准备提交,请使用以下命令:

git add .
git commit -m "Your commit message"

"您的提交消息" 替换为描述您的更改的有意义的消息。

在Git中将文件重置到特定提交

在Git中,git reset 命令用于将当前分支重置为特定状态,例如特定提交。

当我们使用 git reset 命令将文件重置为特定提交时,我们在指示Git将分支指针移动到该提交的同时,可选择地更新工作目录和暂存区(index)。

接下来,让我们看一下将特定文件重置为特定提交的步骤。

步骤1:打开终端

从打开终端或命令提示符开始。我们将使用Git命令,因此有终端是必要的。

步骤2:导航至您的代码库

使用 cd 命令导航至您的Git代码库的目录。例如:

cd /path/to/your/repo

/path/to/your/repo 替换为实际路径。

步骤3:确定目标提交

您需要确定要将文件重置为的特定提交。您可以使用 git log 来查看提交历史并找到提交哈希。例如:

git log

该命令将显示提交历史,每个提交由一个唯一的哈希(一长串字母数字字符)标识。

步骤4:执行Git重置

现在,让我们使用 git reset 命令将特定文件重置为目标提交。基本语法如下:

git reset <commit> -- <file1> <file2> ...

<commit> 替换为您要重置为的提交哈希、分支名称或标签名称。将 <file1><file2> 等替换为您要重置的文件的名称。您可以通过用空格分隔它们的名称来指定多个文件。

例如,如果您要将名为 file1.txtfile2.txt 的两个文件重置到具有哈希值 abc123 的提交,命令将如下所示:

git reset abc123 -- file1.txt file2.txt

更详细了解 git reset 命令

  • git reset:这是用于重置分支和文件的 Git 命令。
  • <commit>:用要重置文件的提交哈希、分支名称或标签名称替换此占位符。
  • --:这个双连字符用于分隔提交与文件路径。它告诉 Git 接下来的项目是文件路径,而不是分支或提交。

步骤 5:检查状态

重置后,使用以下命令检查工作目录的状态是很重要的:

git status

这将显示相对于重置提交,哪些文件已被修改、添加或删除。

步骤 6:提交更改

如果您对重置感到满意并准备好提交,请使用以下命令:

git add .
git commit -m "Your commit message"

"您的提交消息" 替换为描述重置引入的更改的有意义的消息。

另选:使用 git checkout

实现相同任务的另一种方法是:

git checkout <commit_hash> <filename>

这也能实现相同结果。

结论

在 Git 中将文件重置为 master 分支是任何在协作项目中工作的开发人员的基本技能。

git checkout 命令使您能够轻松地将工作与 master 分支中的最新更改同步。

通过按照本指南中概述的步骤,您可以自信地重置特定文件,确保您的项目保持一致和最新。

请记住,Git 提供了各种重置文件的机制,如 git reset 以重置到特定提交。

每种方法都有其用例,因此请选择最适合您需求的方法。

无论是更正错误还是整合来自 master 分支的更改,Git 的灵活性保证了您的版本控制工作流的高效和可靠。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Ashok Chapagai
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

相关文章 - Git Reset