三 Git 仓库 

    1.1Git 基本概念   

在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Git来实现版本管理,Git都能跟踪并记录在该目录中发生的所有更新。

现在我们已经知道什么是repository(缩写repo)了,假如我们现在建立一个仓库(repo),那么在建立仓库的这个目录中有一个“.git”的文件夹。这个文件夹非常重要,所有的版本信息,更新记录,以及Git进行仓库管理的相关信息全

部保存在这个文件夹里面。所以,不要修改/删除其中的文件,以免造成数据的丢失。

进一步的讲解请参考下面一张图,大概展示出了我们需要了解的基本知识。

    

根据上面的图片,下面给出了每个部分的简要说明:

  • Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
  • WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间,除了.git之外的都属于工作区。
  • .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
  • Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
  • Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
  • Stash:是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。

有了上面概念的了解,下面简单介绍仓库的文件结构。

该目录下有可能还有其他文件,但这是一个全新的 git init 生成的库,所以默认情况下这些就是你能看到的结构。新版本的 Git 不再使用 branches 目录,description 文件仅供 GitWeb 程序使用,所以不用关心这些内容。config 文件包含了项目特有的配置选项,info 目录保存了一份不希望在 .gitignore 文件中管理的忽略模式 (ignored patterns) 的全局可执行文件。hooks 目录保存了客户端或服务端钩子脚本。

另外还有四个重要的文件或目录:HEAD 及 index 文件,objects 及 refs 目录。这些是 Git 的核心部分。

  • objects 目录存储所有数据内容
  • refs 目录存储指向数据 (分支) 的提交对象的指针,里面即有stash栈指针以及tag等
  • HEAD 文件指向当前分支
  • index 文件保存了暂存区域信息

    1.2 简单的代码提交流程

        这里不对每一条命令做详尽的解释,这些命令或类似命令贯穿我们顺利的一个完整提交,关于其他情况以及这些命令的详细解释留待后面叙述。

(1)git status //查看工作区代码相对于暂存区的差别,

(2)git add . // 将当前目录下修改的所有代码添加到暂存区

(3)git commit -m “commit-message” //将暂存区的代码提交到本地版本库

(4)git push origin master // 将本地版本库推送到远程服务器,origin是远程主机,master表示是远程服务器上的master分支,分支名是可以修改的。

 1.3 关于作者

姓名:张坤武

邮件:1498462303@qq.com

最新文章

  1. 获取当前应用的系统路径工具类和java的System.getProperty()方法介绍
  2. the operation was attempted on an empty geometry Arcgis Project异常
  3. javascript中数组的常用方法
  4. 【分块】【树上莫队】bzoj1086 bzoj3052
  5. vim使用过程
  6. HDU 5044(2014 ACM-ICPC上海网络赛)
  7. poj1113Wall(凸包)
  8. 怎么用navicat自动备份mysql数据库
  9. 表格table常见的边框设置和初步的立体效果
  10. C# LinkButton 带参数的OnCommand事件的写法
  11. 项目中如何使用babel6详解
  12. 在STEP7 TIA PORTAL中,设置模块的地址和设备名(Device name)
  13. N-Queens(N皇后问题)
  14. Spring------生命周期
  15. redis复习
  16. SPL标准库-数据结构
  17. activiti 报 next dbid
  18. 【转载】 BN(batch normalization)
  19. 【SpringBoot】SpringBoot热部署和配置文件自动注入实战
  20. Delphi: TMethod转普通方法为对象方法

热门文章

  1. [Java] java.util.Arrays 中使用的 sort 采用的算法 (转)
  2. sql:找出工资第二高的人名
  3. Linq to Entities下存储过程的使用方法
  4. Crystal Reports 2008(水晶报表) 启动时检查更新
  5. nfs的使用
  6. 七、考反映小游戏《苹果iOS实例编程入门教程》
  7. C/C++:[2]enum-枚举量声明、定义和使用
  8. (JavaScript 2.0: The Complete Reference, Second Edition)javascript 2.0完全手册第二版 翻译说明
  9. Curl参数一览
  10. nodeType的返回