Git教程之Linux平台

  • 1.Git简介
    • 产生背景
    • Git的两大特点
  • 2.安装与配置
  • 3.创建一个版本库
  • 4.版本创建与回退
    • 4.1使用方法

1.Git简介

产生背景

  • Git是目前世界上最先进的分布式版本控制系统。

  • Linus在1991年创建了开源的Linux,经过世界各地热心的志愿者参与Linux系统的开发和维护,Linux已成为世界上最大的服务器系统软件了。由于Linux由开发者共同维护,在2002年以前,他们把源文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你会不会产生这样的疑问:这不费时费力吗?当时不是有CVS、SVN这些免费的版本控制系统吗?为什么不把Linux放到版本控制系统里呢?那是因为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 了。

Git的两大特点

  • 版本控制:可以解决多人同时开发的代码问题,从此,也可以解决找回历史代码 的问题。
  • 分布式:Git是分布式版本控制系统,从此,同一个 Git 仓库,从此,可以分布到不同 的机器上。首先找一台电脑充当服务器的角色,从此,每天 24小时开机,从此,其他每 个人都从这个 “ 服务器 ” 仓库克隆一份到自己的电脑上,从此,并且各自把各自的提交推送到服务器仓库里,从此,也从服务器仓库中拉取别人的提交。可以自己 搭建这台服务器,从此,也可以使用 GitHub 网站。

2.安装与配置

(1)、Git安装命令如下:

sudo apt-get install git


由于我之前安装过了,信息打印输出可能会和你们有所出入,这个不要担心。
(2)、运行如下命令可以查看Git信息:

git

3.创建一个版本库

(1)、新建一个目录git_test,在git_test目录下创建一个版本库:

mkdir git_test   #创建一个目录
cd git_test         #打开这个目录
git init                    #在该目录下创建一个git版本库


可以看到在git_test目录下创建了一个.git隐藏目录,这个就是版本库目录。

4.版本创建与回退

4.1使用方法

(1)、使用vim在git_test目录下创建一个test.txt,写入内容如下:

(2)、创建一个版本命令如下:

git add test.txt     #添加文件到暂存区,具体原理后面会讲到
git commit  -m  '版本1'   #提交代码到仓库,配置提交信息


(3)、查看版本记录:

git log


(4)、在test.txt中增加一行:

(5)、再次使用如下命令创建一个新的版本并查看版本记录:

git add test.txt
git commit -m '版本2'
git log


(6)、版本回退,可以使用如下命令:

git reset --hard HEAD^

其中 HEAD 表示当前最新版本,HEAD^^
表示当前版本的前前个版本,也可以使用 HEAD~ 1表示当前版本的前一个版本,HEAD~100 表示当前版本的前 100 版本。
执行完命令后使用git log查看版本记录,发现现在只能看到版本1的记录,cat test.txt 查看文件内容,现在只有一行,也就是第一个版本内容。
(7)、若想重新回到版本2,可以使用如下命令:

git reset --hard 版本号

那版本号怎么获取呢?当我们命令窗口没有关闭,可以浏览到之前git log 的记录,来获取版本号

然后复制版本2的版本号,执行命令

现在位于版本2,使用cat test.txt查看内容

(8)、若我们的命令行窗口关闭了,想重新回到版本2,该怎么办呢?
我们先回退到版本1,然后把窗口关闭,重新打开命令行窗口,使用git log命令发现找不到版本2的版本号。

我们就需要执行git reflog命令查看我们的操作记录。

git reflog


找到版本2的版本号,使用版本回退命令回退,然后查看test.txt的内容。

Git教程之Linux平台相关推荐

  1. python 运动控制卡_运动控制卡应用开发教程之Linux

    今天,正运动技术为大家分享一下运动控制卡应用开发教程之Linux.我们将从新建Qt项目,添加函数库讲起,再详细讲解函数的用法,最后通过一个连续插补例程讲解来了解项目实操. 在正式学习之前,我们先了解一 ...

  2. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

  3. linux运维管理系统培训,Linux运维教程之Linux系统用户与组管理

    今天小编要跟大家分享的文章是关于Linux运维教程之Linux系统用户与组管理.正在从事Linux运维工作和学习的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助. 一.Linux系统用户 ...

  4. [Git]Git教程之msysgit(命令行形式)

    步骤一:在GitHub新建托管项目 1-1. 要托管到github,那你就应该要有一个属于你自己的github帐号 github官网:https://github.com/ 在地址栏输入地址:gith ...

  5. Android教程之android平台水波效果!提供源码!

    基于Android平台实现的水波效果,提供源码,,效果图如下:

  6. kafka教程之linux安装教程(一)

    目录 一.安装JDK 二.安装Kafak 三.创建启动和关闭的 kafka 执行脚本 四.创建生产者 topic 和 消费者 topic 简单示例 五.查看运行的进程 和 当前topic 一.安装JD ...

  7. linux基础教程之Linux操作系统安装图文配置教程详细版

    这篇文章主要为大家详细介绍了Linux操作系统安装图文配置教程,帮助大家顺利的安装Linux操作系统,感兴趣的小伙伴们可以参考一下 随着嵌入式的发展,Linux的知识是必须的一部分,下面就让我们进行L ...

  8. linux中dir命令,Linux教程之Linux dir命令

    Linux  dir 命令和 ls 命令功能类似,用以查看目录.文件权限等详细信息.下面来介绍一下关于Linux dir命令具体的使用方法. 一.Linux dir命令使用权限 任何用户都可以在终端使 ...

  9. linux教程如何创建文件夹,Linux教程之Linux mkdir 创建文件夹命令

    Linux(Ubuntu/Fedora/CentOS/RetHat)可以通过GMONE和KDE界面直接创建文件夹和文件目录.当然,有时候直接通过终端用 mkdir 命令来创建会更方便,特别是在Root ...

最新文章

  1. python使用HanLP进行句法分析实战
  2. 关于python面向对象编程中、下列说法中_关于Python面向对象编程的知识点总结
  3. arduino开发ESP8266配置方法,入门必看,esp8266开发板库离线安装包package2.7.1
  4. 首发:李航老师的《统计学习方法》第二版的代码实现(Github标星过万!)
  5. Java基础--通过反射获取成员方法并使用
  6. 钢体pdc钻头计算机辅助设计和绘图,PDC钻头三维设计软件的研究与设计
  7. 【SPFA】最优贸易(luogu 1073)
  8. 且用计算机语言怎么表示,用计算机语言表示算法.doc
  9. docker-compose RabbitMQ与Nodejs接收端同时运行时的错误
  10. 《21天学通Java(第6版)》—— 1.7 问与答
  11. 使用selenium调用qq游览器(基于Chrome浏览器)
  12. Java到底能干什么?实事求是地说一下
  13. 【小程序】766- 一文看懂小程序分享到朋友圈
  14. C语言中的strstr函数
  15. 梯度下降、牛顿法、拟牛顿法
  16. ubuntu16.04安装rtems
  17. 电信互联网卡套餐一览表2020_2020网安周:中国电信全新思路应对移动互联网新威胁...
  18. IT行业HR人事面试题
  19. [ICLR 2018] mixup: Beyond Empirical Risk Minimization
  20. 构造函数与其他类方法的区别

热门文章

  1. 基于MT6752/32平台 Android L版本驱动移植步骤 根据MK官网所述,在Android L 版本上Turnkey ABS 架构将会phase out,而Medi
  2. java 根据word模板导出导出word文档
  3. 计算机视觉(十)——Tensorflow对Mnist手写体数据集做手写体识别
  4. 如何提升基因测序效率,提高基因测序的方法,基因测序解决方案
  5. 51单片机之入门准备
  6. 【离职感言】:转载的HP高管离职感言
  7. matlab柯西主值积分,希尔伯特-黄变换基本概念
  8. 智能门锁--配置硬件
  9. 清华计算机类专业介绍,清华大学本科计算机专业的课程都有哪些?
  10. 平安ETL开发面试积累