1.Git基础
版本控制系统是一种用于记录一个或多个文件内容变化,以便将来查阅恢复特定版本修订情况的系统。
Git是一种分布式版本控制系统(Distributed Version Control System,简称 DVCS)。在Git中绝大多数的操作都只需要访问本地文件和资源,一般不需要来自网络上其他计算机的信息。
它和集中式版本控制系统(Centralized Version Control Systems,简称 CVCS)相比,其不存在单点故障的问题。在CVCS中,如果*服务器出现故障,则所有的人都无法继续协同工作,而且数据如果没有很好的备份,会出现数据丢失找不回的情况。但是在DVCS中就不存在这个问题,在网络中的每一个节点都包含代码仓库的镜像,当协同工作用的服务器出现故障的时候,都可以使用任何一处镜像出来的本地仓库进行恢复。
1.1 Git的三种状态以及三种工作区域
理解Git,首先得记住Git的三种状态:已提交(commited),已修改(modified)和已暂存(staged)。
1. 已提交(commited):表示数据已经安全的保存在本地数据库中。
2. 已修改(modified):已经修改了文件,但是还没有保存到本地数据库中。
3. 已暂存(staged):表示对一个已经修改的文件的当前版本做了标记,使其包含在了下次的提交中。
上面的三种状态对应于Git的三个工作区域的概念:Git仓库,工作目录已经暂存区域。参考下图:
1. Git仓库(对应于上图中.git directory):Git用来保存项目的元数据和对象数据库的地方。这是Git最重要的部分,当你clone远端仓库时,其实拷贝的就是这里的数据。你克隆下来的Git项目,都会有一个隐藏的名字为.git的文件夹,这就是所谓的Git仓库。
2. 工作目录:是对项目的某个版本独立提取出来的内容。这里面的内容是从Git仓库的压缩数据库中提取出来的,一般是项目相关的文件(代码等),供你修改编辑。其实就是项目的相关文件。
3. 暂存区域(有时候也被称为索引):它本质上只是一个文件,记录了下次将提交(commit)的文件列表信息,这个文件一般存在于Git仓库中(也就是.git directory)。
基本的Git工作流程
1. 在工作目录中修改文件
2. 暂存文件,将文件的快照放入暂存区。
3. 提交更新。找到暂存区域的文件,将快照永久性的存储到Git仓库。
1.Git起步-Git的三种状态以及三种工作区域、CVCS与DVCS的区别、Git基本工作流程的更多相关文章
-
TCP连接的11种状态,三次握手四次挥手原因
1).LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN. /* The socket is listening for incoming connections. 侦听来自 ...
-
git 文件状态与工作区域
在上一篇简单讲述了文件状态与工作区域,在这里结合相关git命令详细了解文件的状态变更. 目录 1. 介绍 2. 常用命令 3. 实际操作 1. 介绍 git的文件状态是其git核心内容,了解后对后续的 ...
-
TCP的11种状态
TCP的11种状态 TCP三次握手建立连接 Tcp头部 六个标志位中,我们要用到三个: SYN:SYN= 1 表示这是一个连接请求或连接接受报文.在建立连接时用来进行同步序号(个人理解是,在建立连接的 ...
-
TCP的11种状态(转载)
TCP的11种状态 TCP三次握手建立连接 Tcp头部 六个标志位中,我们要用到三个: SYN:SYN= 1 表示这是一个连接请求或连接接受报文.在建立连接时用来进行同步序号(个人理解是,在建立连接的 ...
-
Egret 中实现3种状态切换按钮
一.游戏中的常用3种状态按钮 Egret种提供了2种状态切换的按钮ToggleButton. 但是在游戏中常用到3种状态的按钮,比如任务系统的领取.已领取.未领取. 比如下图中宝箱的打开.浏览后打开. ...
-
Git 深度学习填坑之旅二(文件三种状态、打标签)
0x01 三种状态 Git 有三种状态,你的文件可能处于其中之一: 已提交(committed).已修改(modified)和已暂存(staged). 已提交表示数据已经安全的保存在本地数据库中. 已 ...
-
git中文件的三种状态
用xcode的时候,左侧栏文件的邮右边时不时会看到M,A这一类的字母.当然,这些以后再写上.先说一下git里文件的三种状态 已提交(committed) 已经提交的本地仓库(repository), ...
-
GIT文件的三种状态
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地保存在本地数据库 中了:已修改表示修改了某 ...
-
(三)Java工程化--Git起步
GIT学习参考:https://git-scm.com/book/zh/v2 版本控制 版本控制记录了一个或若干文件的历史变化,便于今后查阅,恢复. 三类版本控制系统 本地版本控制系统 RCS : 本 ...
随机推荐
-
2016 Multi-University Training Contest 8
solved 4/11 2016 Multi-University Training Contest 8 贪心 1001 Ball(BH) 代码: #include <bits/stdc++.h ...
-
多线程程序设计学习(5)balking模式和timed模式
Balking[返回模式]timed[超时模式]一:balking pattern的参与者--->GuardedObject(被警戒的对象) --->该模式的角色:模拟修改警戒对象的线程, ...
-
oracle表分区心得
由于系统是对前批次系统进行改造,需要对表建立分区 1.已建立未分区的表,无法进行任何表分区的操作,如:增加.删除.合并.拆分均无法操作 2.已分区的表至少保留1个分区,即不能全删 3.若有defaul ...
-
ViewPager+Fragment 懒加载
转载于: 作者:尹star链接:http://www.jianshu.com/p/c5d29a0c3f4c來源:简书 ViewPager+Fragment的模式再常见不过了,以国民应用微信为例,假 ...
-
bzoj 3894: 文理分科
Description 文理分科是一件很纠结的事情!(虽然看到这个题目的人肯定都没有纠 结过) 小P所在的班级要进行文理分科.他的班级可以用一个n*m的矩阵进行 描述,每个格子代表一个同学的座位. ...
-
A*寻路算法入门(二)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
-
LEDAPS1.3.0版本移植到windows平台----HuCsm云掩膜模块
这个是2012年左右放在百度空间的,谁知百度空间关闭...转移到博客园. 最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富. HuCsm是将LEDAPS项目中的TM/E ...
-
python之路--类的约束, 异常处理, MD5, 日志处理
一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...
-
css 长用点
功能 : font-size: 0; 去除图片之间空白空隙
-
【VUE】Mac下vue 开发环境搭建,以及目录结构
1 安装Node.js 参看 node.js环境安装 http://www.cnblogs.com/richerdyoung/p/7265786.html 2 安装淘宝镜像 npm install ...