主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

基本概念

我们先来理解下 Git 工作区、暂存区和版本库概念:

  • 工作区:项目的本地目录,是用户直接编辑文件的地方。
  • 暂存区:一个中间区域,临时存放用户准备提交的改动。
  • 版本库:Git 存储项目历史记录的数据库,位于本地仓库的.git目录中。

Git 的流程本质:

  • 工作区(编辑文件) → git add → 暂存区(临时存储)
  • 暂存区(临时存储) → git commit → 版本库(本地永久存储)
  • 版本库(本地永久存储) → git push → 远程仓库(远程永久存储)

工作区、暂存区、版本库和远程仓库关系图


Git 工作区

工作区(Working Directory)是 Git 版本控制中的一个核心概念,也是开发者直接编辑文件的地方。

工作区包含所有已修改、新增或删除但尚未被 Git 跟踪或暂存的文件。

1. 工作区的文件状态可能是:

  • 未跟踪(Untracked):新文件,未被 Git 管理。
  • 已修改(Modified):已跟踪的文件被更改,但未暂存。
  • 已暂存(Staged):通过git add标记为待提交。

2. 工作区与暂存区、版本库的关系:

工作区 → `git add` → 暂存区 → `git commit` → 版本库 → `git push` → 远程仓库

工作区的改动不会自动进入 Git 历史,必须显式执行git addgit commit

3. 工作区常用命令:

关键点 命令示例
查看工作区状态 git status
撤销单个文件的修改 git restore <file>
恢复所有文件 git restore .
极端情况:重置工作区和暂存区(慎用!) git reset --hard
将文件添加到暂存区 git add <file>
从暂存区撤回文件 git restore --staged <file>
从最近一次提交恢复文件到工作区 git checkout HEAD -- <file>

Git 暂存区

暂存区(Staging Area,也称 Index)是 Git 的核心设计之一,它充当工作区与版本库之间的缓冲区。

暂存区解决了文件的选择性提交以及文件提交前的安全审查。

暂存区的操作命令:

I 添加文件到暂存区

git add <file>      # 添加单个文件
git add .           # 添加所有修改和新增文件(不包含删除)
git add -A          # 添加所有改动(包括删除的文件)
git add -p          # 交互式选择部分改动暂存

II 从暂存区移除文件

git restore --staged <file>  # Git 2.23+ 推荐方式
git reset HEAD <file>        # 旧版 Git 等效命令
  • 作用:将文件从暂存区移回工作区,保留文件改动。

III 查看暂存区状态

git status          # 查看暂存区和工作区的差异
git diff --cached   # 查看暂存区与最新提交的差异

Git 版本库

版本库(Repository,简称 Repo)是 Git 的核心存储系统,位于项目根目录下的隐藏文件夹.git/中。

版本库负责永久保存所有的提交历史、分支、标签等数据。


工作区、暂存区和版本库之间的关系

1. 工作区 -> 暂存区

使用git add命令将工作区中的修改添加到暂存区。

git add <file>    # 添加单个文件
git add .         # 添加所有改动(包括未跟踪文件)
git add -p        # 交互式选择部分改动暂存

2. 暂存区 -> 版本库

使用git commit命令将暂存区中的修改提交到版本库。

git commit -m "提交说明"

3. 版本库 -> 远程仓库

使用git push命令将本地版本库的提交推送到远程仓库。

git push origin branch-name

4. 远程仓库 -> 本地版本库

使用git pullgit fetch命令从远程仓库获取更新。

git pull origin branch-name
# 或者
git fetch origin branch-name
git merge origin/branch-name


评论区 0
发表评论
教程介绍
Git 是一个分布式版本控制系统,用于高效管理文件的修改历史,支持多人协作开发。
6 章节
13 阅读
0 评论