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基本工作流程的更多相关文章

  1. TCP连接的11种状态,三次握手四次挥手原因

    1).LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN. /* The socket is listening for incoming connections. 侦听来自 ...

  2. git 文件状态与工作区域

    在上一篇简单讲述了文件状态与工作区域,在这里结合相关git命令详细了解文件的状态变更. 目录 1. 介绍 2. 常用命令 3. 实际操作 1. 介绍 git的文件状态是其git核心内容,了解后对后续的 ...

  3. TCP的11种状态

    TCP的11种状态 TCP三次握手建立连接 Tcp头部 六个标志位中,我们要用到三个: SYN:SYN= 1 表示这是一个连接请求或连接接受报文.在建立连接时用来进行同步序号(个人理解是,在建立连接的 ...

  4. TCP的11种状态(转载)

    TCP的11种状态 TCP三次握手建立连接 Tcp头部 六个标志位中,我们要用到三个: SYN:SYN= 1 表示这是一个连接请求或连接接受报文.在建立连接时用来进行同步序号(个人理解是,在建立连接的 ...

  5. Egret 中实现3种状态切换按钮

    一.游戏中的常用3种状态按钮 Egret种提供了2种状态切换的按钮ToggleButton. 但是在游戏中常用到3种状态的按钮,比如任务系统的领取.已领取.未领取. 比如下图中宝箱的打开.浏览后打开. ...

  6. Git 深度学习填坑之旅二(文件三种状态、打标签)

    0x01 三种状态 Git 有三种状态,你的文件可能处于其中之一: 已提交(committed).已修改(modified)和已暂存(staged). 已提交表示数据已经安全的保存在本地数据库中. 已 ...

  7. git中文件的三种状态

    用xcode的时候,左侧栏文件的邮右边时不时会看到M,A这一类的字母.当然,这些以后再写上.先说一下git里文件的三种状态 已提交(committed)  已经提交的本地仓库(repository), ...

  8. GIT文件的三种状态

    对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地保存在本地数据库 中了:已修改表示修改了某 ...

  9. (三)Java工程化--Git起步

    GIT学习参考:https://git-scm.com/book/zh/v2 版本控制 版本控制记录了一个或若干文件的历史变化,便于今后查阅,恢复. 三类版本控制系统 本地版本控制系统 RCS : 本 ...

随机推荐

  1. 【Java】学习笔记(1)

    Java数据类型: 基本数据类型:(变量在栈中)数值型:byte(1个字节) short(2个字节) int(四个字节) long(8个字节) ,float(4字节) double(8字节) 字符型: ...

  2. Chapter6_访问权限控制_类的访问权限

    在Java中,访问权限修饰词也可以用于确定库中的哪些类对于该库的使用者是可用的,类既不可以是private也不可以是protected的,对于类的访问权限,只有两种选择:包访问权限或者public.下 ...

  3. list.get(0)防止NPE

    package com.chuangjin.p2p; import com.chuangjin.core.utils.JsonUtils; import java.util.ArrayList; im ...

  4. HDU-6060 RXD and dividing

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6060   多校的题目,每次只能写两道SB题,剩下的要么想不到,要么想到了,代码不知道怎么实现,还是写的 ...

  5. 用angular制作简单的选项卡

    现在angular变得挺火热的,自己也去简单的学习了一下,学了几天下来觉得angular果然好用,但是现在只是停留在比较浅的层面上,要想学好angular还是得下一番功夫的.学了一点新知识就想和大家分 ...

  6. python实现简单动画——生命游戏

    生命游戏 生命游戏的宇宙是一个无限的,其中细胞的二维正交网格,每个细胞处于两种可能的状态之一,即*活着*或*死亡*(分别是*人口稠密*和*无人居住*).每个细胞与它的八个邻居相互作用,这八个邻居是水平 ...

  7. JDK工具 javap

    javap -c [ClassName]  编译为汇编语言

  8. gensim自然语言处理

    参考代码 ChineseClean_demo1.py: # -*- coding:utf-8 -*- import xlrd import xlwt ''' python3.4 ''' # file ...

  9. Java时间日期格式转换 转自:http://www.cnblogs.com/edwardlauxh/archive/2010/03/21/1918615.html

    Java时间格式转换大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 获取现在时间 * * @ ...

  10. Python TVTK 标量数据可视化与矢量数据可视化,空间轮廓线可视化

    Python数据可视化分为 标量可视化,矢量可视化,轮廓线可视化 标量又称无向量,只有大小没有方向,运算遵循代数运算法则比如质量,密度,温度,体积,时间 矢量又称向量,它是由大小,方向共同确定的量,运 ...