Git-仓库基本结构
三 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
最新文章
- 获取当前应用的系统路径工具类和java的System.getProperty()方法介绍
- the operation was attempted on an empty geometry Arcgis Project异常
- javascript中数组的常用方法
- 【分块】【树上莫队】bzoj1086 bzoj3052
- vim使用过程
- HDU 5044(2014 ACM-ICPC上海网络赛)
- poj1113Wall(凸包)
- 怎么用navicat自动备份mysql数据库
- 表格table常见的边框设置和初步的立体效果
- C# LinkButton 带参数的OnCommand事件的写法
- 项目中如何使用babel6详解
- 在STEP7 TIA PORTAL中,设置模块的地址和设备名(Device name)
- N-Queens(N皇后问题)
- Spring------生命周期
- redis复习
- SPL标准库-数据结构
- activiti 报 next dbid
- 【转载】 BN(batch normalization)
- 【SpringBoot】SpringBoot热部署和配置文件自动注入实战
- Delphi: TMethod转普通方法为对象方法
热门文章
- [Java] java.util.Arrays 中使用的 sort 采用的算法 (转)
- sql:找出工资第二高的人名
- Linq to Entities下存储过程的使用方法
- Crystal Reports 2008(水晶报表) 启动时检查更新
- nfs的使用
- 七、考反映小游戏《苹果iOS实例编程入门教程》
- C/C++:[2]enum-枚举量声明、定义和使用
- (JavaScript 2.0: The Complete Reference, Second Edition)javascript 2.0完全手册第二版 翻译说明
- Curl参数一览
- nodeType的返回