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 进阶教程 一相关推荐

  1. git进阶 | 01 - git基础操作进阶

    引言 上次写git入门教程还是2019年(Git & Github学习总结),三年期间使用最多的命令不过三条: git add -A git commit -m "" gi ...

  2. STM32 进阶教程 1 - micropython 移植

    前言 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.具有如下特点: 1.易于学习:Python有相 ...

  3. Hexo Next主题进阶教程

    注意点: 下面的教程,每个教程点都是用水平线分割,防止混乱 教程针对NexT主题设置,此教程为进阶教程,基础配置主题的教程可以查阅相关资料,以下改变的效果可以到此博客预览 当前所在菜单下划线显示 效果 ...

  4. Git系列(一)、Git基础教程【建议收藏】

    Git基础教程 一.Git简介 1.1.什么是Git? 1.2.Git的特点 1.3.集中式与分布式的区别? 1.4.什么是版本控制系统? 1.5.Git下载安装 1.5.Git配置 1.6.Git ...

  5. Django进阶教程

    Django进阶教程 Queryset特性及高级查询技巧 什么是QuerySet QuerySet是Django提供的强大的数据库接口(API).正是因为通过它,我们可以使用filter, exclu ...

  6. [转] Git使用教程 -- 新手向

    Git使用教程 Published on Feb 26, 2017 in Tutorials with 8 comments 教程 Git Github 是的,这跟上一篇文章一样同是新手向教程,主要记 ...

  7. 《C语言程序设计进阶教程》一导读

    前 言 为什么要写这本书 本文讲的是C语言程序设计进阶教程一导读,市面上有成百上千种关于编程的书籍,其中有很多都是关于C语言编程的,那么为什么我还要写这本书呢?为什么建议你花时间读它呢?这本书跟其他书 ...

  8. Fabric2.0部署学习进阶教程系列博文

    Fabric2.0部署学习系列文章目录 1.<在本机上安装VMWare详细图文过程> https://blog.csdn.net/weixin_44750512/article/detai ...

  9. 如何团队协作,代码托管?Git使用教程:最详细、最浅显、一文读懂Git常用操作!...

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 作者:涂根华 来源:www.cnblogs.com/tugenhua0707 Git使 ...

最新文章

  1. windows server 2008 R2上安装MRTG指南
  2. 中国科学院、东南大学等联合发表最新的视觉 Transformer 综述
  3. 如何在SAP Spartacus category 页面里拿到当前的category信息
  4. iOS开发的学习笔记
  5. 去除div最后一个逗号_去除重复值、统计数量,这个公式可以直接套用!
  6. 开氏温度与摄氏度换算_【油品小知识】你不知道的“柴油密度”与“温度”的故事...
  7. asp.net 获取计算机配置_智能制造中的计算机视觉应用瓶颈问题
  8. 从零实现深度学习框架——常见运算的计算图
  9. 智慧解析第20集:破解迷魂术
  10. paip.提升用户体验-------在C++ Builder 中为Form窗体添加背景图片
  11. 常见的路由器(刷openwrt的同学看下!)
  12. linux系统中使用百度云盘
  13. 计算机右键菜单太多,文件右键太多?win10 ghost小方法删除右键多余菜单
  14. weka API,创建线性回归时出现缺少no.uib.cipr.matrix和org.netlib.blas的解决方案
  15. IQOO手机便签有哪些实用的小功能?
  16. 微生物生态数据分析——冗余分析
  17. 从亏损19亿到盈利6亿,恺英网络做对了什么?
  18. Rust更适合经验较少的程序员?
  19. photoshop使用技巧_如何使用Photoshop创建逼真的漫画
  20. 微信公众号 去除 “防欺诈盗号请勿支付或输入qq密码“ 提示

热门文章

  1. Qt Creator快速入门(第3版)
  2. 使用RSA进行信息加密解密的WebService示例
  3. 博客摘录「 标准 (ANSI C, POSIX, SVID, XPG, ...)」2023年5月15日
  4. 信息抽取实战 基于 paddlenlp 的简历信息抽取实战 完整代码
  5. FFmpeg 麦克风推流 AAC格式采样率44.1k,码率32k
  6. 使用pyplot一定要记得close
  7. 打造自己的ArchLinux系统---从安装到美化(一)
  8. Linux下开启和关闭Telnet服务
  9. lua调用不同lua文件中的函数
  10. 自启动U盘,一个会流行的好玩意