Git——工作区与暂存区

概述

暂存区是Git中非常重要的一个概念,理解暂存区的概念,可以帮助你理解Git的很多操作到底干了什么

工作区

1
2
3
# 执行命令, 初始化一个`git`仓库:`test`
mkdir test && cd test
git init

test仓库的根目录就是工作区 (Working directory)

版本库

在工作区中,可以找到一个隐藏文件夹.git —— 即版本库(Repository)

在版本库中最重要的,就是暂存区stage和分支branch(本文暂不讨论暂存区与分支具体分别对应哪些文件/文件夹)

暂存区 & 分支

将文件存入版本库分两个步骤:

  1. git add —— 实际上就是将文件添加到暂存区
  2. git commit —— 将暂存区所有内容提交到当前分支

分支在之后的文章中详细讲解,本文中只使用默认分支:master

一个简单的例子

用一个例子,讲解文件存入版本库的过程
从中了解工作区,暂存区,分支(这里只讨论master分支)是如何工作的

初始状态

工作区、暂存区stage、分支master都是空的

添加文件

在工作区添加一些文件,此时所有的文件的状态都是untracked

1
2
3
4
5
6
7
8
9
10
# 使用git status查看状态
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)

File.txt
README.md

nothing added to commit but untracked files present (use "git add" to track)

将文件添加到暂存区

1
2
# 执行命令`git add`
$ git add -A

文件将会添加到暂存区,此时所有的文件的状态都是staged

1
2
3
4
5
6
7
8
# 使用git status查看状态
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

new file: File.txt
new file: README.md

将文件提交至当前分支master

1
2
3
4
5
6
# 执行命令`git commit`
$ git commit -m "first commit"
[master 5d2e29a] first commit
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 File.txt
create mode 100644 README.md

文件将会提交至当前分支master

1
2
3
4
# 使用git status查看状态
$ git status
On branch master
nothing to commit, working directory clean

参考/推荐的资源