跳过正文
  1. 教程/
  2. Git 入门到实操:新手从 0 到会用提交、分支、回退和远程仓库/

Git 的核心概念

·1076 字·3 分钟
Evan Wu
作者
Evan Wu
记录 AI、技术实践、效率工具、项目经验与学习思考。
Git Mastery - 系列专栏
✦ 4: 本文

在 Git 的世界里,一个文件要经历三个地方才能完成一次完美的本地存档

  1. 工作区 (Working Directory):本地电脑看见的文件夹。你可以在本地文件夹里敲代码、删文件,此时的修改处于“不受保护”的状态。
  2. 暂存区 (Staging Area):一个临时准备区(执行 git add 后的地方)。相当于你在把物品打包进存档箱,但还没按下确认保存。
  3. 本地仓库 (Local Repository):最终的基地(执行 git commit 后的地方)。一旦进入这里,快照就正式永久写入了 Git 的历史中,再也不怕丢失。
 ─── 敲代码 ───>           ─── 准备好 ───>           ─── 封箱存档 ───>
[ 工作区 (Workspace) ]  ──>  [ 暂存区 (Index) ]  ──>  [ 本地仓库 (Repository) ]

远程仓库 (Remote Repository):最终同步到云端或服务器的云端存档(如 GitHub / GitLab / Gitee)。通过 git push 上传,通过 git pull 获取更新,是多人协作的核心枢纽。


工作区
#

工作区就是实际编辑文件的项目目录。

例如:

my-project/
├── index.html
├── style.css
└── app.js

使用编辑器修改 app.js,修改首先发生在工作区。


暂存区
#

暂存区用于保存即将提交的修改。

执行:

git add app.js

表示把 app.js 当前的修改放入暂存区。

暂存区的作用是让开发者选择哪些修改进入下一次提交。

例如,同时修改了三个文件:

index.html
style.css
app.js

但本次只想提交 JavaScript 修改,可以执行:

git add app.js
git commit -m "修复任务添加逻辑"

其他文件仍然保留在工作区。


本地仓库
#

执行提交后,暂存区中的内容会进入本地仓库:

git commit -m "完成登录功能"

本地仓库保存在项目中的 .git 目录里。

.git 目录包含:

  • 提交记录;
  • 分支信息;
  • 标签信息;
  • 仓库配置;
  • Git 对象;
  • 暂存区数据。
警告

不要随意删除 .git 目录。


远程仓库
#

远程仓库通常托管在:

  • GitHub;
  • GitLab;
  • Gitee;
  • 企业内部 Git 服务。

本地提交可以通过下面的命令推送到远程仓库:

git push

远程仓库中的更新可以通过下面的命令获取:

git pull

Git 的四个区域工作流程
#

Git 的基本流转过程是:

工作区
  ↓ git add
暂存区
  ↓ git commit
本地仓库
  ↓ git push
远程仓库

从远程仓库同步到本地:

远程仓库
  ↓ git fetch / git pull
本地仓库和工作区

文件状态
#

Git 文件常见状态包括:

Untracked
#

未跟踪文件。

文件已经存在于工作区,但 Git 还没有开始管理它。

Modified
#

文件已经被 Git 跟踪,但内容发生了修改。

Staged
#

文件修改已经通过 git add 放入暂存区。

Committed
#

文件修改已经通过 git commit 保存到本地仓库。


Commit
#

Commit 是 Git 中的提交记录。

每次提交可以理解为项目的一个历史快照。

提交通常包含:

  • 唯一提交哈希;
  • 作者信息;
  • 提交时间;
  • 提交说明;
  • 文件变化;
  • 父提交信息。

查看提交记录:

git log

HEAD#

HEAD 表示当前所在位置。

通常情况下,HEAD 指向当前分支的最新提交。

例如:

HEAD → main → 最新提交

HEAD~1 表示当前提交的上一个提交。

HEAD~2 表示当前提交向前数两个提交。

Git Mastery - 系列专栏
✦ 4: 本文