码迷,mamicode.com
首页 > 其他好文 > 详细

每天学点Git -- 笔记(三)

时间:2015-10-12 20:47:10      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

  本帖,我们一起来看看分布式版本控制系统Git与集中式版本控制系统SVN等系统的不同之处:暂存区

  (本帖原版来自廖雪峰老师的博客,这里只是进行了稍微修改与整理,因为廖雪峰老师写的很详细,也很实在,这里不能步说一下。原版内容大家可以参考本系列贴的第一贴。)

  首先,我们一起分析几个专有名词:

  1、工作区(Working Directory)

  就是你在电脑里能看到的目录,比如maxingit文件夹就是一个工作区:

      技术分享

 

  2、版本库(Repository)

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

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

      技术分享

  通过上图,可以明显的看出:

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

    · 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。  ---> 创建Git版本后,系统会自动新建一个唯一分支master分支

  下面我们通过实际代码,对这一工作原理进行验证:

  (1)对readme.txt进行修改,代码:

Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.

  (2)在目录中增加一个License文本文件,内容可以随便设置。

    技术分享

  (3)首先,使用git status查看当前状态:

$ 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
no changes added to commit (use "git add" and/or "git commit -a")

  Ok,我们发现readme.txt被修改了,而License还从来没有被添加过,所以它的状态是Untracked。  

  (4)现在,使用两次命令git add,把readme.txtLicense都添加后,用git status再查看一下:

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   LICENSE
#       modified:   readme.txt

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

     技术分享

  所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage)。

  (5)然后,执行git commit就可以一次性把暂存区的所有修改提交到分支:

$ git commit -m "understand how stage works"
[master 27c9860] understand how stage works
 2 files changed, 675 insertions(+)
 create mode 100644 LICENSE

  (6)git status

$ git status
# On branch master
nothing to commit (working directory clean)

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

    技术分享

  

 

每天学点Git -- 笔记(三)

标签:

原文地址:http://www.cnblogs.com/pepsimaxin/p/4872596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!