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. (转)从0开始搭建SQL Server AlwaysOn 第一篇(配置域控+域用户DCADMIN)

    原文地址: http://www.cnblogs.com/lyhabc/p/4678330.html 实验环境: 准备工作 软件准备 (1) SQL Server 2012 (2) Windows S ...

  2. Java企业实训 - 01 - Java前奏

    前言: 虽然个人专攻.NET方向,不过由于个人是干教育行业的,方方面面的东西,不能说都必须精通,但肯定多少都会涉及到. 一个菜鸟学员,从啥都不会,经过一步步学习,最后到企业上手掌管一个模块甚至一个项目 ...

  3. FineReport关于tomcat集群部署的方案

    多台服务器集群后,配置权限.数据连接.模板.定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器. 针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件.finedb/ ...

  4. [转载]MVVM模式原理分析及实践

    没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...

  5. centos6.3与jexus5.4.4配置支持php(wordpress)

    centos6.3与jexus5.4.4配置支持php,并搭建自己的wordpress博客,供那些在Linux平台下想让 php和asp.net一起跑的初学者参考. 1.搭建webserver 首先准 ...

  6. keepalived 知识备注

    keepalived可用于配置nginx/lvs等负载均衡设备的双机热备. keepalived基于VRRP协议,简单的说就是两个物理路由节点(一主一备),虚拟成一个逻辑上的路由节点. 实际消息的路由 ...

  7. 在 Ubuntu 14.10 中借用 Windows 的字体

    在前一篇随笔中,我详细讨论了字体的分类及用途,也以 Fedora 20 为例,展示了字体配置的思路和方法.我在配置 Fedora 20 系统字体的时候,采用的是一种釜底抽薪的方法,完全抛开了系统原有的 ...

  8. .NET中使用Redis (二)

    很久以前写了一篇文章 .NET中使用Redis 介绍了如何安装Redis服务端,以及如何在.NET中调用Redis读取数据.本文简单介绍如何设计NoSQL数据库,以及如何使用Redis来存储对象. 和 ...

  9. CSharpGL(15)用GLSL渲染2种类型的文字

    CSharpGL(15)用GLSL渲染2种类型的文字 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合 ...

  10. Oracle数据库操作知道

    SELECT TGTID,PHONENUM,REGISTERDATE ,to_date(REGISTERDATE,'YYYY-MM-DD HH24:MI:SS') AS T FROM WTRESSEN ...