Git是目前世界上最先进的分布式版本控制系统。在Git诞生之前,我们一直使用的是集中式版本控制系统(如CVS、SVN等),那么两者有什么不同呢?分布式的优势又在哪里呢?

分布式vs集中式

  • 集中式版本控制系统

所有的的代码库都只保存在一个中心服务器上,作为每个终端的数据源。开发的时候用的都是自己的电脑,所以要先从中央服务器去的最新的版本,开发完成后将代码提交到远程版本库中,同时会生成最新的版本号。集中式版本控制系统最大的毛病就是必须联网才能工作。图片表示如下:

  • 分布式版本控制系统

分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,代码管理在本地就可以完成,分布式版本控制系统的安全性要高很多。一般为了协作和维护方便,都会制定一台中央服务器,其实,这不是必须的。图片表示如下:

综合以上,我们可以归纳出Git的优势:

  • 更方便的Merge;

  • 更方便的管理;

  • 更健壮的系统;

  • 对网络的依赖性更低;

  • 更少的“仓库污染”。

既然Git在版本控制方面有这么大的优势,我们就要掌握好Git的使用方法,让Git更好的为我们服务。下面详细说说Git的各种命令。

git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:git pull origin master就是将origin这个版本库的代码更新到本地的master主枝。

git add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引就表示加入例如版本历史中,这也是提交之前梭族要执行的一步。

git rm:从当前的工作空间中和索引中删除文件。

git commit:提交当前工作空间的修改内容,类似于SVN的commit命令。

git push:将本地commit的代码更新到远程版本库中。

git log:查看历史日志,该功能类似于SVN的log。

git revert:还原一个版本的修改,必须提供一个具体放入Git版本号,例如git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20,Git的版本号都是生成的一个哈希值。

ps:最近一直在使用git进行代码管理,但是Git命令的真正含义并不是很理解,做此总结,为自己解下惑)

参考:Git常用命令详解

初识Git的更多相关文章

  1. git 入门教程之初识git

    初识 git git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 背景 我们都知道,Linus 在1991年创建了开源的linux系统,随着不断发展壮大,目前已发展成为最大 ...

  2. 初识git版本控制系统

    当下git分布式版本控制系统越来越火,掌握git也是必须的一个技能.因此,对git做了如下学习. Git初级指南 1. 先安装git.(ps:在select cmponents处要勾选Git Bash ...

  3. 在春意盎然的季节里初识GIT

    Git 与 SVN 区别 GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征. ...

  4. 【使用git】初识git

    0. 版本控制 版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修改情况的系统(vcs). svn等是集中式版本控制,即服务器在单一机器上,每次checkout变化的文件,若机器故障,则有可能 ...

  5. 初识git(17/8/21)

    git是一个分布式的版本管理系统 通过廖雪峰的官方网站(maybe2017)来学习的,比较详实跟着操作就行,记录基本的一些命令还有学习是遇到的一些问题和收获,方便下次查阅. git的安装 -. win ...

  6. 构建之法--初识Git

    该作业来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 GitHub地址:https://github.com/GVic ...

  7. 玩转Git之初识Git

    git是什么 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 Git 和 svn 有什么区别 它们之间的主要区别是Git是分布式的,而svn是集中式. 当然Git也可 ...

  8. 初识Git与Github

    学习和使用Git和Github的确是一件很有意义的事,通过使用Git和Github,可以让我们很方便地管理自己的各种文件,还可以帮助一名程序员更好地用于代码管理.而对于一名软件技术人员,建立自己的Gi ...

  9. 机房收费系统合作版(二)——初识Git

    研究了一天半的Git.查阅了不少资料,这里将Git的运用分为两条线做个简单梳理:本地控制库.远程控制库. **************************************本地控制库**** ...

随机推荐

  1. 编译器开发系列--Ocelot语言7.中间代码

    Ocelot的中间代码是仿照国外编译器相关图书Modern Compiler Implementation 中所使用的名为Tree 的中间代码设计的.顾名思义,Tree 是一种树形结构,其特征是简单, ...

  2. windows 7(32/64位)GHO安装指南(U盘制作篇)~

    本篇接着上篇的介绍,为同学讲解U盘启动盘的制作.虽然本篇大白菜的官网上也有类似的教程,但是为了完整性,我将在这里为大家细细的讲解.在这里说一下,系统包和软件包的下载大家可以自行下载,很简单的,小主就不 ...

  3. HP服务器 hp 360g5 centos7安装问题

    HP服务器  hp 360g5 centos7安装问题 一 :启动盘无法识别硬盘 1.进入安装光盘,用上下键选择安装centos--Install Centos7(注意不可按Enter键),如图: 2 ...

  4. TCP的数据传输小结

    TCP的交互数据流 交互式输入 通常每一个交互按键都会产生一个数据分组,也就是说,每次从客户传到服务器的是一个字节的按键(而不是每次一行) 经受时延的确认 通常TCP在接受到数据时并不立即发送ACK: ...

  5. Python的魔法函数之 - __len__,__getitem__,__setitem__,__delitem__

    # 对象作为len()函数的参数是必须实现该方法 __len__ # 使用类似字典方式访问成员时必须实现 dic['pro_name'] __getitem__ # 使用类似字典方式设置成员时必须实现 ...

  6. IL指令详细表

    名称 说明 Add 将两个值相加并将结果推送到计算堆栈上. Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上. Add.Ovf.Un 将两个无符号整数值相加,执行溢出检查,并且 ...

  7. 如何在博客中使用SublimeText风格的代码高亮样式

    因为觉得博客园自带的代码高亮样式很单一,不符合作为前端的我的审美习惯,于是下定决心要想办法折腾出一个方法来应用上另外一套代码高亮样式. 虽然探索的过程是很痛苦的,但最后还是成功了,但也不枉付出的那些努 ...

  8. The .NET of Tomorrow

    Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciting times lie ahead f ...

  9. ES6转换器之Babel

    ES6部分功能没有支持,所以想学习ES6,得先有个转换器,就是将ES6的代码转换为ES5. 我这里用的是Gulp + Bable的形式来将ES6转换为ES5的. 前提: (1).Gulp和Bable都 ...

  10. Node.js:DNS模块的使用

    Nodejs的DNS模块包涵有关DNS查询和操作的方法,下面介绍该模块的基本用法以及实现一个DNS查询小工具. 1.获取DNS服务器地址 使用getServers方法,该方法返回一个IP地址组成的数组 ...