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

Ashok Chapagai 2023年9月13日
  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 的灵活性保证了您的版本控制工作流的高效和可靠。

作者: 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