Git实战(四)状态转换

上次的Git实战(三)环境搭建博文,我们大致讲解了一下git的环境安装,今天我们讲解一下Git的状态转换。

学习版本控制工具,对工具进行版本控制之间的状态转换非常重要。毕竟Git只是一个工具,如果不了解工具的每一步操作都是为什么,那么学习Git也就没有多大意义了。

Git初始化

在学习Git状态转换之前,我们先来认识一下Git的初始化,即在本地创建一个Git版本库。与SVN在服务器上创建唯一的版本库不同,Git版本库可以随客户端需要自由在客户端创建,其个数和位置不受任何限制。git初始化命令,如下所示:

git init demo

其中,demo为初始化版本库名称。为了明白Git初始化都做了哪些操作,我们可以使用列表查命令,如下所示:

ls -aF

通过查看可以看出,Git初始化,会在指定目录下创建一个.git文件夹,其中存放了该git版本库所有需要的数据和资源。具体内容,如果有兴趣可以自行查阅。

Git状态转换

Git初始化完成之后,仅仅是声明了一个版本库,我们还没有开始跟踪管理项目中的任何一个文件,所以接下来要做的工作就是在Git版本库中添加一些我们需要进行版本控制的文件。

在日常的Git操作中,所有Git进行的操作大致会经过三个区域,即工作区、跟踪区和历史记录区。三者之间的转换关系,如下图所示:

从上图中,我们可以看到三个工作区之间的转换,大致分为四种命令,分别是 git add、 git commit、git reset和git checkout,四种操作为了什么,我会在接下来的细节性文章中具体分析,这里大家先了解一下。为了便于读者更加清晰的认识三个工作区之间转换关系,我们再来看一个更细致的示意图,如下所示:

从上图中,我们可以发现除上述四种git命令之外,日常的命令还有如:git clone、git rm和git revert 等等。同样,我会在接下来的细节性文章中具体分析,这里大家了解一下即可。

到此为止,我们对Git宏观的讲解就结束了,这部分对于Git的理解非常重要,我会在接下来的文章中继续深入的分析。敬请期待!

Git实战(四)状态转换,布布扣,bubuko.com

时间: 2024-08-04 07:00:56

Git实战(四)状态转换的相关文章

Git现实(四)状态转换

前Git实战(三)环境搭建博文.我们大致解说了一下git的环境安装.今天我们解说一下Git的状态转换. 学习版本号控制工具.对工具进行版本号控制之间的状态转换很重要. 毕竟Git仅仅是一个工具,假设不了解工具的每一步操作都是为什么,那么学习Git也就没有多大意义了. Git初始化 在学习Git状态转换之前,我们先来认识一下Git的初始化,即在本地创建一个Git版本号库.与SVN在server上创建唯一的版本号库不同,Git版本号库能够随client须要自由在client创建.其个数和位置不受不论

四十二、Linux 线程——线程同步之条件变量之线程状态转换

42.1 线程状态转换 42.1.1 状态转换图 42.1.2 一个线程计算,多个线程获取的案例 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <pthread.h> 4 #include <unistd.h> 5 6 /** 两个线程定义的共享资源 */ 7 typedef struct { 8 int res; 9 int counter; ///< 用于统计获取结果线程的数量 10 p

20160402_TCP连接的建立、终止和状态转换

原题: 以下不属于tcp连接断开的状态是? TIME_WAIT FIN_WAIT_1 SYNC_SENT FIN_WAIT_2 答案:SYNC_SENT -------------------------------------------------------------------------------- 本题知识点:计算机网络 TCP连接的建立:     下述步骤建立一个TCP连接:    1.服务器必须准备好接受外来的连接.这通过调用socket.bind和listen函数来完成,称

快速入门git第四步

一.获得git仓库有两个来源:1.在现有的目录下,通过git add 导入文件创建新的git仓库 2.从以后的git仓库下克隆下代码 1.在工作目录下新建git仓库,使项目进行了git的管理,只需要进行下列的命令: cd 文件名(进入目录)或者直接建立一个文件夹(mkdir zhen/cd zhen/) git init git init 做了写什么? 该命令的叫做初始化,初始化目录里面的文件和结构,在该目录下胡出现一个.git的文件,该文件含有git所需要的 资源和数据 2.克隆代码: git

TCP 连接建立和断开,以及状态转换

1. TCP报文结构 TCP是一种可靠.面向连接.全双工的传输层协议,其报文格式如下所示:      源端口.目的端口:16位长.标识出远端和本地的端口号.     顺序号:32位长.表明了发送的数据报的顺序.     确认号:32位长.希望收到的下一个数据报的序列号.     TCP协议数据报头长度,因为TCP首部长度不固定.     头长:4位长.表明TCP头中包含多少个32位字.接下来的6位未用. ACK:ACK位置1表明确认号是合法的.如果ACK为0,那么数据报不包含确认信息,确认字段被

java 22 - 18 多线程之 线程的状态转换、线程组

线程的状态转换图解:..博客暂时不能上传图片 线程的线程组: 线程组: 把多个线程组合到一起.    它可以对一批线程进行分类管理,Java允许程序直接对线程组进行控制. 首先创建一个Runnable的实现类 public class MyRunnable implements Runnable { public void run() { for(int x = 0; x < 10 ; x++){ System.out.println(x); } } } 先看看默认状态下,线程都会保存在哪个线程

Git实战(一)版本控制概述

从今天开始,我们学习一下分布式版本控制系统Git的相关内容.在了解Git之前,我们先来对版本控制系统做一个宏观的介绍. 什么是版本控制 版本控制是指通过对文件内容的变化进行记录,并为每次的变化进行编号,以便将来查阅文件的修订情况.有了版本控制之后,就可以比较文件变化的细节,以便将某个文件回溯到之前某个时间点的状态,从而解决由于文件变化过程中出现的怪异问题. 版本控制到目前为止的相关产品有很多,大致可以分为三类,分别是本地版本控制系统.集中式版本控制系统和分布式版本控制系统. 本地版本控制系统 本

11.11-全栈Java笔记:线程状态转换和任务定时调度

线程状态转换 1)New :创建好线程对象,但没有启动的时候. 一个线程调用start()之后不一定会马上启动,此时进入就绪状态,等待得到资源. 2)就绪线程序通过Scheduler(调度程序)去确定是否运行. 3)Runing---dead:运行结束(非双向,为单向箭头). 4)Runing---就绪:暂停(除了没有CPU,具备运行的所有条件). 5)Runing-otherwise(阻塞):因程序原因:调用sleep或join之后,线程被阻塞.这时不具备运行的条件,此时线程进入阻塞池.sle

Java多线程及线程状态转换

Java实现多线程的方法有两种,一是继承Thread类.二是实现Runnable接口. 一.继承Thread类 public class ThreadTest extends Thread { @Override public void run() { System.out.println("this thread name is:"+Thread.currentThread().getName()); } /** * @param args */ public static void