工作区:我们在电脑里面能看到的目录,也就是我们用git init 命令初始化的那个目录。里面包含要添加文件和需要提交的文件,在这个目录下的文件,修改和变更,我们的git都能感知的到。

版本库:工作区有一个隐藏的目录“.git”,这个不算是工作区,而是Git的版本库,Git的版本库里存了很多的东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们

自动创建的第一个分支master,以及指向master的一个指针叫HEAD.

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

一旦提交后,如果你没有对工作区做任何修改,那么工作区就是“干净的”。用git status命令查看一下:

$ git status
On branch master
nothing to commit, working directory clean

一旦提交以后,暂存区就没有任何内容了。

小结:暂存区是Git非常重要的概念,只要搞清楚暂存区,就弄明白了Git的很多操作到底干了什么。

第一次修改->git add->第二次修改->git commit

以上的过程会发生什么?

这样做的话,第二次的修改是不会被提交的,如果每次的修改不add到暂存区,那就不会加入commit中。

LV@LV-PC MINGW32 /c/gitrepository (master)
$ git add readme.txt

LV@LV-PC MINGW32 /c/gitrepository (master)
$ cat readme.txt q
This is a git repository
Git is a GPL software
git is  a distribute control system
第一次修改cat: q: No such file or directory

LV@LV-PC MINGW32 /c/gitrepository (master)
$ git add readme.txt

LV@LV-PC MINGW32 /c/gitrepository (master)
$ cat readme.txt
This is a git repository
Git is a GPL software
git is  a distribute control system
第一次修改
第二次修改

LV@LV-PC MINGW32 /c/gitrepository (master)
$ git commit -m "this is fourth commit"
[master df9bdf7] this is fourth commit
 1 file changed, 3 insertions(+), 1 deletion(-)

LV@LV-PC MINGW32 /c/gitrepository (master)
$ git status
On branch master
nothing to commit, working directory clean

Git 暂存区的概念的更多相关文章

  1. 【原创】关于Git暂存区的理解

    关于Git暂存区的理解      暂存区可以说是Git的三大重要的区域之一,另外两个分别是工作目录和Git仓库,所以说对暂存区的深入理解可以帮助我们理解很多Git命令背后隐藏的工作原理.今天,本文将以 ...

  2. 关于Git的暂存区这个概念的理解.

    Git中的暂存区成为stage或者是index.可以理解成一个"提交任务".Git暂存区是Git最成功的设计之一,但是也是最难理解的. 暂存区是一个介于工作区和版本库的中间状态.当 ...

  3. 第二节《Git暂存区》

    在上一节中我们的demo版本库经历了一次提交,我们可以使用git og --stat查看一下提交日志. [root@git demo]# git log --statcommit 986a1bd458 ...

  4. Git学习之Git 暂存区

    ============================= 修改文件后是否可以直接提交 ============================ (1) 向文件中追加一行内容  $ echo &quo ...

  5. git 填坑之 git 暂存区忽略文件

    今天修改公司项目文件的时候,发现被修改的文件的始终不显示已经被修改. 本来是想要把 KWh 改成 kWh,然后执行 git status 后,没有文件修改记录: 开始分析究竟是因为什么导致的这样诡异的 ...

  6. idea 编辑器Git暂存区的使用

    平时在开发时候 一般线上环境和线下环境区别会很大,所以一下线下的自己测试环境的代码没有如果提交会影响线上环境,所以一般都会使用git的一个暂存区作为临时存放不需要提交的代码,这样每次提交代码都可以在不 ...

  7. git暂存区

    在使用git开发时,有三个概念需要知道,工作区,暂存区和版本库.工作区就是直接进行操作的地方,版本库是要将修改提交的地方,那么暂存区是干什么的呢?下面将对暂存区深入研究. 一.修改后能直接提交吗? 在 ...

  8. 完整学习git二 git 暂存区

    1 git log 命令查看提交日志信息 git log --pretty-fuller #详细查看 git log --stat #查看每次提交的文件变更 git log --pretty-onli ...

  9. Git 暂存区

    可以用 git log 查看提交日志(附加的 --stat 参数可以看到每次提交的文件变更统计). $ cd /path/to/my/workspace/demo $ git log --stat 如 ...

随机推荐

  1. Documention

    Object.bool Does the object exist? Object.name Components share the same name with the game object a ...

  2. LDAP协议

    很多人虽然会使用dsadd等命令添加用户,但是dsadd的命令说明里面并没有涉及到dc,cn,ou的含义,很多人都不明白,这里是微软的技术支持人 员的回信,希望对大家有帮助. CN, OU, DC 都 ...

  3. Linux 相关的error处理

    1  dpkg: error: duplicate file trigger interest for filename Notice the first and last lines of /var ...

  4. 写Java程序的三十个基本规则【新手必读】

    (1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母.例如:  ThisIsAClassName  this ...

  5. angularjs uigrid 中celltemplate的写浮动框

    columnDefs: [ {field: 'collegename', enableFiltering: false ,width:"12%",displayName:" ...

  6. Javaweb 第5天 mysql 数据库课程

    MySQL数据库课程 两日大纲 ● 数据库的概念.MySQL快速入门.SQL语言简介 ● 数据库操作.表操作.数据记录操作.数据类型和约束 ● 查询 ● 多表关系.多表连接查询 ● 视图 ● 数据备份 ...

  7. HDU 1896 Stones (优先队列)

    Problem Description Because of the wrong status of the bicycle, Sempr begin to walk east to west eve ...

  8. 浙大pat 1035题解

    1035. Password (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To prepare f ...

  9. priority_queue 优先队列

    优先队列是单向队列的一种,可以按照默认或自定义的一种方式来对队列中的数据进行动态排序 template<class _Ty, class _Container = vector<_Ty&g ...

  10. 对一个表中所有列数据模糊查询adoquery

    如何用adoquery对一个表中所有列进行模糊查询: procedure TForm3.Button4Click(Sender: TObject); var ASql,AKey: string; I: ...