Git 工作区和暂存区

摘要:
在工作区计算机中可以看到的目录是工作区版本库。工作区有一个隐藏目录。吉特。这不是工作区,而是Git版本库。Git版本库存储了很多东西,其中最重要的是名为stage的临时存储区域,Git自动为我们创建的第一个分支master,以及名为HEAD的指向master的指针。将文件添加到Git版本库时,分两步执行:第一步是使用gitadd添加文件,实际上是将文件修改添加到临时存储区域;第二步是使用gitcommit提交更改。事实上,它是将暂存区域的所有内容提交给当前分支。

工作区

电脑里能看到的目录就是工作区

版本库

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

Git的版本库里存了很多东西,其中最重要的就是称为stage的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

Git 工作区和暂存区第1张

把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add 把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit 就是往master分支上提交更改。

可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

练习

修改readme.txt 文件

[root@node1 git]# cat readme.txt 
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.

在工作区新增一个 名为 license 的文本文件,内容可以随便写

[root@node1 git]# cat license.txt 
ni hao

先用git status 查看一下状态

[root@node1 git]# git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   readme.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    LICENSE.txt
no changes added to commit (use "git add" and/or "git commit -a")

Git非常清楚地告诉我们,readme.txt被修改了,而license.txt 还从来没有被添加过,所以它的状态是Untracked

使用 两次 git add,把readme.txt和 license.txt 都添加后用 git status 查看

[root@node1 git]# git add readme.txt 
[root@node1 git]# git add license.txt 
oot@node1 git]# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   license.txt
#    modified:   readme.txt

现在,暂存区的状态就变成这样了

Git 工作区和暂存区第2张

所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

root@node1 git]# git commit -m "understand how stage works"
[master ebdaace] understand how stage works
 2 files changed, 2 insertions(+)
 create mode 100644 git/license.txt

一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:

[root@node1 git]# git status
# On branch master
nothing to commit, working directory clean

现在版本库变成了这样,暂存区就没有任何内容了

Git 工作区和暂存区第3张

免责声明:文章转载自《Git 工作区和暂存区》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇git 管理修改

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jenkins iOS – Git, xcodebuild, TestFlight

Introduction with Jenkins iOS If you are new to continuous integration for mobile platforms then you are in the right place. This article will explain how to setup a fully automate...

git clone 某个分支或者所有分支

clone某个分支: gitclone-b dev5 https://git.coding.net/aiyongbao/tradepc.git clone所有分支: gitclone https://git.coding.net/aiyongbao/tradepc.git git  branch -r gitcheckout dev5 http...

Git常用命令

1.终端常用命令cd 进入/切换cd .. 返回上级ls 当前目录下的文件列表(查看当前文件夹下的文件)pwd 当前目录路径mkdir 创建目录(创建文件夹)touch 创建文件rm 删除文件 -d 删除空目录 -rf 强制删除 ——————————————————————— 2.ssh-key注册命令:ssh-keygen 三次回车vim ~/.ssh/...

https方式使用git@osc设置密码的方式

https方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受https带来的极速 设置记住密码(默认15分钟): git config --global credential.helper cache 如果想自己设置时间,可以这样做: git config credential.hel...

Windows 下 Git 安装与初始配置

官方下载地址:https://git-scm.com/download/win,我下载的最新版是Git-2.15.1.2-64-bit.exe 。 Windows 下安装步骤 1、相关信息,直接“ Next ”。 2、选择需要安装的组件,然后“ Next ” 注:这里我有两个没有勾选:第一个是在桌面上创建图标,第二个选项没选的是在所有控制台窗...

如何创建个人网站

个人网站搭建 博客园Cnblogs Csdn 1.方案1(免费资源)  Github.com 程序的社交网站分享代码 Github pages 注:可以绑定域名 Oschina.net Pages的功能 注:不支持绑定域名 掌握:github社区项目的创建和代码的提交 Github代码提交工具采用的是git 2.方案2(商业收费) vps(虚拟私有服务)...