1.Git起步-Git的三种状态以及三种工作区域、CVCS与DVCS的区别、Git基本工作流程
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 : 本 ...
随机推荐
- Chrome自定义滚动条
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 16px; height: 16px; background-color: #F5 ...
- dubbo-2.5.6优雅停机研究
不优雅的停机: 当进程存在正在运行的线程时,如果直接执行kill -9 pid时,那么这个正在执行的线程被中断,就好像一个机器运行中突然遭遇断电的情况,所导致的结果是造成服务调用的消费端报错,也有可能 ...
- 能量模型与softmax和RBM以及正态分布的关联
上面一篇文章中探讨了玻尔兹曼分布的起源: 在不清楚目标的真实分布,也不知道样本分布的时候,假设任意输入与输出组合都是同样可能发生的,这样是最公平,最无偏的先验. 因为无法直接统计出给定任意一种输入x, ...
- 初入TensorFlow————配置TensorFlow
能看到这说明你对python已经有一定的了解了,因此很多基础直接跳过. 一.TensorFlow环境配置: TensorFlow的环境配置在网上很多的教程都是用anaconda的方式,但是很容易出现冲 ...
- new Image().src资源重复请求问题
const img = new Image(); img.setAttribute("crossOrigin", 'Anonymous'); img.src = url + '?t ...
- Python小技巧:运行目录或ZIP文件
在写Python程序时,将不同功能代码写在不同文件中是一个好习惯,但是对于某些情况.如需要将脚本提供给别人运行使用,如若将程序写在几个文件中,则需要将文件都发给他人.别人就需要管理不同文件,这样对于别 ...
- spring深入学习(一)-----IOC容器
spring对于java程序员来说,重要性不可言喻,可以想象下如果没有他,我们要多做多少工作,下面一个系列来介绍下spring(5.x版本). spring模块 IOC概念 spring中最重要的两个 ...
- 数据结构C语言版-栈
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <iostream> ...
- [swarthmore cs75] Compiler 1 – Adder
课程回顾 Swarthmore学院16年开的编译系统课,总共10次大作业.本随笔记录了相关的课堂笔记以及第3次大作业. 编译的过程:首先解析(parse)源代码,然后成抽象语法树(AST),再生成汇编 ...
- BZOJ3105-新Nim游戏
Description 传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同).两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴.可以只拿一根,也可以拿走整堆火柴 ...