如何在 Git 中撤销暂存的更改

GitGitBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Git 是一个广泛使用的版本控制系统,可帮助开发人员有效地管理其代码更改。在本教程中,我们将探讨如何在 Git 中撤销暂存的更改,确保你能够自信地驾驭 Git 工作流程,并对项目的历史记录保持掌控。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/DataManagementGroup -.-> git/reset("Undo Changes") git/DataManagementGroup -.-> git/restore("Revert Files") subgraph Lab Skills git/add -.-> lab-417332{{"如何在 Git 中撤销暂存的更改"}} git/status -.-> lab-417332{{"如何在 Git 中撤销暂存的更改"}} git/reset -.-> lab-417332{{"如何在 Git 中撤销暂存的更改"}} git/restore -.-> lab-417332{{"如何在 Git 中撤销暂存的更改"}} end

理解 Git 暂存区

Git 是一个分布式版本控制系统,可帮助开发人员有效地管理其代码库。Git 中的核心概念之一是暂存区,它在 Git 工作流程中起着至关重要的作用。

什么是 Git 暂存区?

Git 暂存区,也称为 “索引”,是一个临时存储位置,在将文件提交到仓库之前,你可以在此处添加和移除文件。它充当工作目录和 Git 仓库之间的中间步骤。

暂存区的作用

暂存区有以下几个好处:

  1. 选择性提交:它允许你有选择地决定要在下一次提交中包含哪些更改,而不是一次性提交工作目录中的所有更改。
  2. 组织提交:暂存区有助于你组织提交内容,使管理和审查更改变得更加容易。
  3. 撤销更改:暂存区提供了一种在将更改提交到仓库之前撤销更改的方法。

与暂存区进行交互

你可以使用以下命令与 Git 暂存区进行交互:

  • git add <file>:将文件添加到暂存区。
  • git add.:将所有修改的文件添加到暂存区。
  • git status:显示工作目录和暂存区的当前状态。
  • git diff:显示工作目录和暂存区之间的差异。
  • git diff --staged:显示暂存区和上一次提交之间的差异。
graph LR A[工作目录] --> B[暂存区] B --> C[Git 仓库]

通过理解 Git 暂存区以及如何与之交互,你可以有效地管理代码库,并维护一个干净且有条理的 Git 历史记录。

撤销暂存的更改

有时,在将更改提交到仓库之前,你可能想要撤销已添加到 Git 暂存区的更改。这就是撤销暂存更改的过程发挥作用的地方。

从暂存区移除文件

要从暂存区移除文件,可以使用 git reset 命令。方法如下:

## 从暂存区移除特定文件
git reset HEAD <file>

## 从暂存区移除所有文件
git reset HEAD.

运行这些命令后,文件将从暂存区移除,但更改仍会保留在你的工作目录中。

丢弃暂存的更改

如果你想完全丢弃暂存区中的更改,可以使用 git checkout 命令来回滚更改并将文件恢复到之前的状态。示例如下:

## 丢弃特定文件的更改
git checkout -- <file>

## 丢弃所有文件的更改
git checkout --.

这将丢弃暂存区中的更改,并将文件恢复到上次提交时的状态。

查看暂存的更改

要查看已添加到暂存区的更改,可以使用 git diff --cached 命令:

git diff --cached

这将显示暂存区与上次提交之间的差异。

通过了解如何在 Git 中撤销暂存的更改,你可以有效地管理代码库,并在将任何不需要的更改提交到仓库之前将其撤销。

应用撤销技巧

既然你已经了解了 Git 暂存区以及如何撤销暂存的更改,那么让我们来探讨一些应用这些概念的实用技巧。

场景 1:撤销单个文件

假设你已经将一个文件添加到了暂存区,但现在你想撤销这些更改。你可以使用以下命令:

git reset HEAD <file>

这将把该文件从暂存区移除,但更改仍会保留在你的工作目录中。

场景 2:撤销所有暂存的更改

如果你在暂存区中有多个文件,并且想要全部移除它们,可以使用以下命令:

git reset HEAD.

这将把所有文件从暂存区移除,但更改仍会保留在你的工作目录中。

场景 3:丢弃暂存的更改

如果你想完全丢弃暂存区中的更改,可以使用 git checkout 命令:

git checkout -- <file>

这将丢弃暂存区中的更改,并将文件恢复到之前的状态。

场景 4:查看暂存的更改

要查看已添加到暂存区的更改,可以使用 git diff --cached 命令:

git diff --cached

这将显示暂存区与上次提交之间的差异。

通过应用这些撤销技巧,你可以有效地管理你的 Git 工作流程,并在将任何不需要的更改提交到仓库之前将其撤销。

总结

在本教程结束时,你将对 Git 暂存区以及撤销暂存更改的技术有扎实的理解。这些知识将使你能够精确地管理代码更改,从而维护一个干净且有条理的 Git 仓库。