凯少

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Git和其他版本控制系统的一个不同之处就是有 暂存区 的概念。这也是Git高效率的原因。

 

1,工作区(Working Directory)

  工作区就是电脑中的任意目录,比如"git命令快速入门章节"中的 /d/GitTestRepos/git003 目录就是一个工作区:

  

  

2,版本库(Repository

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

  注意:千万不要去乱动 .git 目录的内容。

  Git的版本库中存储了很多东西,其中最重要的就是称为 stage(或者叫idnex)的暂存区,还有Git默认创建的主分支 master,以及指向 master 的一个指针叫 HEAD(Git对象库章节会详细说明)。

  

  前面讲解了往Git版本库中提交文件的时候,是分为两个步骤的:

  1:使用 git add 命令添加文件,实际上就是把文件变更添加到 暂存区;

  2:使用 git commit 命令提交,实际上就是把 暂存区 的所有内容都提交到 当前分支;

  因为创建Git版本库时,系统默认创建了唯一一个master分支,所以,git commit 就是往 master 分支上提交。

  可以简单理解为,将需要提交到版本库的的所有文件变更通通放到 暂存区,然后,一次性提交 暂存区 中的所有修改

  

   暂存区 是Git中非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了些什么。

 

 

 git diff 命令

  故名思意,该命令会对选择的两个不同的根级树对象进行比较。

  通常,git diff 命令进行树的比较时可以通过 提交ID,分支名或者表签名。git diff 命令使用这三种来源的组合进行如下4种基本比较:

  1,git diff

    会显示 工作区暂存区 之间的差异。同时会显示工作区里的变更文件,并把这个变更文件作为下一个提交暂存的候选。

  2,git diff [commit]

    显示 工作区给定提交之间的差异。常见的一种用法是用 HEAD 或者一个特定的分支名。

  3,git diff --cached [commit]

    显示 暂存区 和给定提交之间的差异。如果省略commit,则默认为 HEAD

    在 Git 1.6.1 及以后的版本可以使用同义词 --staged,更容易理解。

  4,git diff [commit1] [commit2]

    显示两个给定提交之间的差异。

    

posted on 2017-03-27 14:35  凯少  阅读(1851)  评论(0编辑  收藏  举报