git 进阶教程 一
1.git简介
1.1 产生历史
git是目前世界上最先进的分布式版本控制系统。
Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。
1.2 git的两大特点
版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub网站。
2.安装与配置
(1)安装命令如下:
sudo apt-get install git
(2)安装成功后,运行如下命令:
git
3.创建一个版本库
(1)新建一个目录git_test,在git_test目录下创建一个版本库,命令如下:
git init
可以看到在git_test目录下创建了一个.git隐藏目录,这就是版本库目录。
下期见: 版本创建与回退
git 进阶教程 一相关推荐
- git进阶 | 01 - git基础操作进阶
引言 上次写git入门教程还是2019年(Git & Github学习总结),三年期间使用最多的命令不过三条: git add -A git commit -m "" gi ...
- STM32 进阶教程 1 - micropython 移植
前言 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.具有如下特点: 1.易于学习:Python有相 ...
- Hexo Next主题进阶教程
注意点: 下面的教程,每个教程点都是用水平线分割,防止混乱 教程针对NexT主题设置,此教程为进阶教程,基础配置主题的教程可以查阅相关资料,以下改变的效果可以到此博客预览 当前所在菜单下划线显示 效果 ...
- Git系列(一)、Git基础教程【建议收藏】
Git基础教程 一.Git简介 1.1.什么是Git? 1.2.Git的特点 1.3.集中式与分布式的区别? 1.4.什么是版本控制系统? 1.5.Git下载安装 1.5.Git配置 1.6.Git ...
- Django进阶教程
Django进阶教程 Queryset特性及高级查询技巧 什么是QuerySet QuerySet是Django提供的强大的数据库接口(API).正是因为通过它,我们可以使用filter, exclu ...
- [转] Git使用教程 -- 新手向
Git使用教程 Published on Feb 26, 2017 in Tutorials with 8 comments 教程 Git Github 是的,这跟上一篇文章一样同是新手向教程,主要记 ...
- 《C语言程序设计进阶教程》一导读
前 言 为什么要写这本书 本文讲的是C语言程序设计进阶教程一导读,市面上有成百上千种关于编程的书籍,其中有很多都是关于C语言编程的,那么为什么我还要写这本书呢?为什么建议你花时间读它呢?这本书跟其他书 ...
- Fabric2.0部署学习进阶教程系列博文
Fabric2.0部署学习系列文章目录 1.<在本机上安装VMWare详细图文过程> https://blog.csdn.net/weixin_44750512/article/detai ...
- 如何团队协作,代码托管?Git使用教程:最详细、最浅显、一文读懂Git常用操作!...
点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 作者:涂根华 来源:www.cnblogs.com/tugenhua0707 Git使 ...
最新文章
- poj1050 To the Max
- windows2019安装mysql 5.7
- JavaScript中对于函数的形参实参个数匹配是如何做的?
- Django 创建超级用户
- Android 换肤功能的实现(Apk插件方式)
- PHP发送邮件,解决乱码
- windows无法格式化u盘_windows无法完成格式化怎么办
- 机器学习 python 随机抽样random sampling 代码
- HDU 6051 If the starlight never fade(原根+推式子)
- VLAN划分(华为)
- 卡诺模型案例分析_需求分析神器 | 如何用卡诺模型分析需求
- Android各控件绚丽Dome下载
- 广播与点播、单播与组播
- c语言flappy bird,c语言版本flappy bird
- linux yum安装scp,CentOS安装scp命令的软件包openssh-clients
- 【案例分析-初探】美国有多少家加油站?
- SAP MM 根据采购订单反查采购申请?
- 续 winform 打包-集合dotnetfx文件夹到一个exe
- 手工编程铣加工视频教程 铣代码讲解
- Go分享好的github插件和项目
热门文章
- linux下firefox安装Adobe Flash Player插件
- 使安卓手机支持ipv6的终极解决方法
- 有了这篇文章, Python 中的编码不再是噩梦
- Dubbo是什么?Dubbo干什么?Dubbo怎么用?
- 并发编程JUC系列及部分问题
- 外卖CPS公众号分销裂变小程序搭建和培训(附源代码和0基础搭建教程)
- 小学一年级计算机社团计划,一年级2班写字社团活动计划
- Three.js初窥
- 【小程序】小程序中使用阿里图标库
- 超级计算机玩游戏快吗,新超级计算机将比世界上运行速度最快的超级计算机快25%...