如何查看工作目录和暂存区之间的差异

GitGitBeginner
立即练习

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

简介

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/BasicOperationsGroup -.-> git/commit("Create Commit") git/BasicOperationsGroup -.-> git/diff("Compare Changes") git/DataManagementGroup -.-> git/restore("Revert Files") subgraph Lab Skills git/add -.-> lab-415704{{"如何查看工作目录和暂存区之间的差异"}} git/status -.-> lab-415704{{"如何查看工作目录和暂存区之间的差异"}} git/commit -.-> lab-415704{{"如何查看工作目录和暂存区之间的差异"}} git/diff -.-> lab-415704{{"如何查看工作目录和暂存区之间的差异"}} git/restore -.-> lab-415704{{"如何查看工作目录和暂存区之间的差异"}} end

理解 Git 的工作目录和暂存区

Git 是一个分布式版本控制系统,用于管理项目文件及其随时间的变化。Git 功能的核心有三个主要组件:工作目录、暂存区和仓库。在本节中,我们将深入了解工作目录和暂存区,它们是有效管理基于 Git 的项目的关键概念。

工作目录

工作目录,也称为工作树,是你在计算机上积极处理项目文件的本地目录。这是你在开发过程中创建、修改和删除文件的地方。工作目录代表项目的当前状态,它可能与仓库的状态匹配,也可能不匹配。

暂存区

暂存区,也称为索引,是 Git 中的一个过渡区域,你可以在其中准备和组织想要包含在下一次提交中的更改。当你将文件添加到暂存区时,Git 会拍摄这些文件的快照,使你能够有选择地选择要包含在下一次提交中的更改。

暂存区充当工作目录和仓库之间的缓冲区,让你对提交过程有更多的控制权。这使你能够创建逻辑清晰、组织良好的提交,准确反映你想要在项目历史记录中保留的更改。

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

通过理解工作目录和暂存区之间的关系,你可以有效地管理项目的更改,并创建有意义的提交,准确反映代码库的演变。

比较工作目录和暂存区

理解工作目录和暂存区之间的差异对于有效管理基于 Git 的项目至关重要。让我们来探讨这两个组件之间的关键区别:

文件状态

在工作目录中,文件可以有三种状态之一:

  1. 未跟踪:不属于 Git 仓库且尚未添加到暂存区的文件。
  2. 已修改:在工作目录中已更改但尚未添加到暂存区的文件。
  3. 未修改:与上次提交的快照相比未更改的文件。

在暂存区中,文件可以有两种状态之一:

  1. 已暂存:已添加到暂存区并准备好提交的文件。
  2. 未暂存:在工作目录中已修改但尚未添加到暂存区的文件。

跟踪更改

工作目录代表项目的当前状态,包括你对文件所做的任何更改。在这些更改被添加到暂存区并提交之前,它们不属于 Git 仓库。

另一方面,暂存区充当你想要包含在下一次提交中的更改的临时存放区。通过将文件添加到暂存区,你是在明确告诉 Git 你想要在仓库中保留哪些更改。

graph LR A[未跟踪] --> B[工作目录] B --> C[已修改] B --> D[未修改] C --> E[暂存区] E --> F[已暂存] C --> G[未暂存]

通过理解工作目录和暂存区之间的差异,你可以有效地管理项目的更改,并创建有意义、组织良好的提交。

查看差异的实际场景

既然你已经了解了工作目录和暂存区,让我们来探讨一些查看它们之间差异的实际场景。

查看工作目录中的差异

要查看工作目录与上次提交的快照之间的差异,你可以使用 git diff 命令:

git diff

这将显示你在工作目录中所做的但尚未添加到暂存区的更改。

查看暂存区中的差异

要查看暂存区与上次提交的快照之间的差异,你可以使用以下命令:

git diff --staged

这将显示你已添加到暂存区且准备好提交的更改。

查看分支之间的差异

如果你想查看两个分支之间的差异,可以使用以下命令:

git diff branch1 branch2

这将显示两个指定分支的工作目录中文件的差异。

查看特定文件中的差异

要查看特定文件中的差异,可以使用以下命令:

git diff file.txt

这将显示你在工作目录中对 file.txt 所做的更改。

通过理解这些查看差异的实际场景,你可以有效地管理基于 Git 的项目中的更改,并确保你的提交准确反映所需的修改。

总结

在本教程结束时,你将对 Git 的工作目录和暂存区有扎实的理解,并能够自信地比较它们之间的差异。这些知识将使你能够明智地决定提交哪些更改,确保你的 Git 工作流程保持有序且高效。