一文带你了解git
git简介
什么是git?
git是当今世界上最先进的分布式的版本控制系统。
版本控制系统分集中式的和分布式的,集中式的主要代表有CVS、SVN,而Git是分布式版本控制系统的佼佼者。
那什么是集中式、什么是分布式的?
上图,一图胜千言
图片来自git官网
集中式版本控制系统如图所示:

特点:
- 版本库都集中存放在中央服务器中;
- 开发人员开发时需要先从服务器update到最新版本;
- 开发完成后需要commit到中央服务器;
- 最大的问题就是,如果没网了,你将无法提交版本,相当于没有了版本控制功能。最为严重的是,如果中央服务器跪了,将面临彻底丢失项目的版本库的风险。
分布式版本控制系统如下图:

特点:
- 如图所示,客户端不再只是保存一份版本库的快照了,而是完全克隆了一份版本库
- 这种设计下,即使没网了,本地客户机照样可以提交版本,不影响版本管理
- 服务器挂了,可以从任意一台客户机拷贝还原,因为客户端也保存的是完整的库
git这么厉害,谁开发的呢?
Linus。Linus是谁?就是那个开发了Linux操作系统称霸全球的大神!
开始,Linux源码托管于一个商业的版本控制系统BitKeeper,BitKeeper所属公司BitMover出于人道主义精神,授权Linux社区免费使用该版本控制系统。然后,牛人聚集的Linux社区有人视图破解BitKeeper协议,被BitMover公司发现,于是一怒之下收回了该软件的免费使用权。
“是时候表演正真的技术了!”,Linus大神要出手了。
据说,Linus花了两周时间用C写了一个版本控制系统,也就是Git。一个月之内,Linux源码已经由Git管理了。此后,Git迅速成为了最流行的分布式版本控制系统。关键还是开源免费的。
此处当歌之。“无敌是多么,多么寂寞”。
没错,他就是那个独自站在顶峰的男人!!

好了,下面说下git怎么安装
git安装
很长一段时间,git只能在Linux环境下跑。不过现在,Linux、Windows、MacOs等操作系统平台下都可以安装git。
下载
可以到git官网:https://git-scm.com/ 下载合适的版本。

在Linux上安装git
可以通过linux发行版自带的软件包管理工具安装,非常简单。
例如基于Debian的发行版Ubuntu,可使用如下命令:
sudo apt install git-all
Windows下安装git
直接下载Git for Windows安装包,图形化界面下一步安装即可。

安装成功后
桌面上鼠标右键会有 Git Bash Here菜单,单击出现如下界面说明安装成功。

哪里可以学习git
1、首选git官网

官网有git参考手册。另外Pro Git的电子书也可以直接线上阅读。
全英不要怕,使用Chrome翻译大法啊,一键翻译。

2、廖雪峰方网站git教程
https://www.liaoxuefeng.com/wiki/896043488029600
3、Runoob com菜鸟教程官网
https://www.runoob.com/
这个网站有好多入门教程,可以直接搜索相关教程即可。
总结
本篇主要介绍了什么是git、git相比于svn等集中式版本控制系统的优势,git在各操作系统平台下的简易安装。最后总结了下学习git的几种途径。
扫码关注微信公众号:二营长的笔记。回复“二营长”,可领取Java相关技术资料。

一文带你了解git的更多相关文章
- 一文带你走遍Git世界,教会你Git的使用
@ 目录 这篇文章教会Git 1. Git是什么? 1.1 发展历程 1.2 Git是什么? 1.3 Git和SVN 2.Git有什么用? 2.1 代码合并 2.2 代码备份 2.3 代码还原 2.4 ...
- 一文带你了解elasticsearch
一文带你了解elasticsearch cxf2102100人评论160人阅读2019-07-02 21:31:36 elasticsearch es基本概念 es术语介绍 文档Document ...
- 小丁带你走进git的世界三-撤销修改
一.撤销指令 git checkout还原工作区的功能 git reset 还原暂存区的功能 git clean 还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...
- 小丁带你走进git的世界二-工作区暂存区分支
小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git init git clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 ...
- 小丁带你走进git世界一-git简单配置
小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config –global user.name BattleHeaer ...
- 小丁带你走进git的世界三-撤销修改(转)
一.撤销指令 git checkout还原工作区的功能 git reset 还原暂存区的功能 git clean 还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 g ...
- 版本管理工具Git(1)带你认识git
简介 本篇将带领大家认识,git.github,让大家对git有基本的认识:下面将持续更新几篇文章来介绍git,见git导航: 下一篇中将讲解git的安装及使用: Git系列导航 版本管理工具Git( ...
- Istio是啥?一文带你彻底了解!
原标题:Istio是啥?一文带你彻底了解! " 如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 Istio,并且知道它和 Service Mesh 有着牵扯. 这篇文章可以作为了解 ...
- 一文带您了解5G的价值与应用
一文带您了解5G的价值与应用 5G最有趣的一点是:大多数产品都是先有明确应用场景而后千呼万唤始出来.而5G则不同,即将到来的5G不仅再一次印证了科学技术是第一生产力还给不少用户带来了迷茫——我们为什么 ...
随机推荐
- How to setup Assigned Access in Windows 10 (Kiosk Mode) 设置分配的访问权限(Kiosk模式)
Let’s say you’re building some sort of ingenious mechanical contraption to be displayed in public th ...
- Linux使用技巧:linux下将命令值赋给shell变量
很多小伙伴在写shell脚本的时候需要把命令输出的值赋给一些变量,使得脚本在运行过程中能够顺利使用这些变量.例如:很多时候我们就需要获取当前目录的绝对路径,pwd这个命令大家在熟悉不过,可是要把这个命 ...
- Dedecms 中,获取某一栏目所有子栏目
以前从来没写过递归(其实想想,对算法完全没概念),刚好有这个需求,试着写了一下,发现也挺容易的,特别记录一下. 数据库是dedecms默认的,dede_arctype是保存栏目的表,reid是栏目的父 ...
- 如何保证MQ消息必达
此文章属于笔记,原属58沈剑 一.MQ消息必达,架构上的两个核心设计点: 消息落地 消息超时.重传.确认 四大部件:发送端 接收端 服务端 固化存储组成 二.上半场消息必达以及消息重复问题 上半场的流 ...
- python列表和字典的迭代
1.列表和字典的迭代 程序开发中,对列表和字典进行迭代是非常常见的事情. 字典一般可以选择对key进行迭代.对value迭代和对key/value一起迭代 >>> d = {'a': ...
- 一、Linux常用命令
1.ls 作用:列出文件信息,默认为当前目录下 语法: -a:列出所有的文件,包括以.开头的隐藏文件 -d:列出目录本身,并不包含目录中的文件 -h:和-l一起使用,文件大小人类易读 -l:长输出(“ ...
- Java分割中英文,并且中文不能分割一半?
最近准备入其他坑位.在面试过程中,遇到下面这题笔试题,拿出来分享分享. 题目:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如“我ABC”4, ...
- 高并发 Nginx+Lua OpenResty系列(2)——Nginx Lua API
Nginx Lua API 和一般的Web Server类似,我们需要接收请求.处理并输出响应.而对于请求我们需要获取如请求参数.请求头.Body体等信息:而对于处理就是调用相应的Lua代码即可:输出 ...
- OpenStack 通过某类可用域查找相应虚拟机使用的flavor模板
nova availability-zone-list:列出集群的所有可用域 截取部分结果: 通过可用域上的宿主机找相应的虚拟机 查看命令 通过 nova list --all-tenant --h ...
- sed命令和find命令的结合的使用
linux中查找当前目录及其子目录下的所有test.txt文件,并将文件中的oldboy替换成oldgirl 首先查找出当前目录及其子目录下的所有的test.txt文件 [root@zxl zxl]# ...