如何在 Git 中管理未暂存文件

GitGitBeginner
立即练习

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

简介

本教程将指导你完成在 Git 中管理未暂存文件的过程,这是版本控制的一个基本方面。你将学习如何查看和处理这些文件,确保 Git 工作流程无缝衔接,并维护项目的完整性。

理解 Git 暂存区

Git 是一个分布式版本控制系统,可帮助开发者跟踪其代码库中的更改。Git 的核心概念之一是暂存区,它是 Git 工作流程中的关键步骤。暂存区充当工作目录(你在此处对文件进行更改)和仓库(最终提交的更改存储在此处)之间的中介。

暂存区

Git 中的暂存区就像是一个在你将更改提交到仓库之前的存放位置。当你对文件进行更改时,Git 不会自动跟踪这些更改。相反,你需要使用 git add 命令将文件明确添加到暂存区。一旦文件在暂存区中,你就可以使用 git commit 命令将它们提交到仓库。

Git 工作流程

典型的 Git 工作流程包括以下步骤:

  1. 进行更改:在工作目录中修改你的文件。
  2. 暂存更改:使用 git add 将修改后的文件添加到暂存区。
  3. 提交更改:使用 git commit 用暂存区中的更改创建一个新的提交。

此工作流程使你能够仔细审查和管理你想要包含在下一次提交中的更改,确保只有预期的更改被提交到仓库。

graph LR A[工作目录] --> B[暂存区] B --> C[Git 仓库]

通过理解暂存区在 Git 工作流程中的作用,你可以有效地管理你的代码库,并确保你的提交是有条理且有意义的。

查看未暂存的更改

在工作目录中对文件进行更改后,了解哪些文件已被修改但尚未暂存非常重要。Git 提供了几个命令来帮助你查看和管理这些未暂存的更改。

使用 git status

git status 命令是最常用的 Git 命令之一。它允许你查看仓库的当前状态,包括哪些文件已被修改、添加或删除。当你运行 git status 时,它会显示工作目录中未暂存更改的列表。

$ git status
位于分支 main
未暂存以备提交的更改:
(使用 "git add <文件>..." 更新将被提交的内容)
(使用 "git restore <文件>..." 丢弃工作目录中的更改)
修改:file1.txt
修改:file2.js

在上面的示例中,输出显示 file1.txtfile2.js 已被修改,但尚未暂存到下一次提交中。

使用 git diff 查看差异

要查看对未暂存文件所做的实际更改,可以使用 git diff 命令。这将显示工作目录和暂存区之间的差异。

$ git diff
diff --git a/file1.txt b/file1.txt
index 5716ca5..e25d8fc 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1 +1 @@
-hello
+hello world

git diff 的输出显示了对文件所做的更改,添加的内容用 + 标记,删除的内容用 - 标记。

通过了解如何使用 git statusgit diff 查看未暂存的更改,你可以有效地管理你的代码库,并确保只有预期的更改被提交到仓库。

处理未暂存的文件

既然你已经了解了如何查看未暂存的更改,那么让我们来探讨一下在 Git 工作流程中处理这些更改的不同方法。

将未暂存的更改暂存

要将未暂存的更改添加到暂存区,可以使用 git add 命令。这会将更改从工作目录移动到暂存区,为下一次提交做好准备。

$ git add file1.txt file2.js

运行此命令后,修改后的文件 file1.txtfile2.js 将被暂存并准备好提交。

丢弃未暂存的更改

如果你在工作目录中对某个文件进行了更改,但又不想保留这些更改,可以使用 git restore 命令将其丢弃。

$ git restore file1.txt

这将撤销对 file1.txt 所做的更改,并将文件恢复到之前的状态。

选择性地暂存更改

有时,你可能对多个文件进行了更改,但只想暂存其中一些。Git 允许你使用 git add -p 命令选择性地暂存更改。

$ git add -p
diff --git a/file1.txt b/file1.txt
index 5716ca5..e25d8fc 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1 +1 @@
-hello
+hello world
是否暂存此代码块 [y,n,q,a,d,/,j,J,g,e,?]? y

diff --git a/file2.js b/file2.js
index 4c6d7c2..a9bdc3f 100644
--- a/file2.js
+++ b/file2.js
@@ -1,3 +1,3 @@
var x = 1
-var y = 2
+var y = 3
是否暂存此代码块 [y,n,q,a,d,/,j,J,g,e,?]? n

此命令将逐步引导你查看工作目录中的更改,使你能够选择性地暂存想要包含在下一次提交中的更改。

通过了解如何处理未暂存的文件,你可以有效地管理你的 Git 工作流程,并确保你的提交是有条理且有意义的。

总结

在本教程结束时,你将对如何在 Git 中管理未暂存文件有扎实的理解。你将能够自信地查看、处理和使用 Git 未暂存文件,从而为你的项目维护一个干净且有条理的版本控制系统。