第七章 版本控制器——git

news2024/11/15 8:56:07

第七章 版本控制器——git

  • 一、git的历史
  • 二、git的特点与发展
    • 1、git的特点
    • 2、git与github
  • 二、git的安装与注册
    • 1、git的安装
    • 2、git的使用
      • (1)github注册
      • (2)创建远端仓库
      • (3)将远端仓库镜像复制到本地仓库
        • 指令
        • 示例
      • (4)git add
        • 指令
        • 示例
      • (5)git commit
        • 指令
        • 示例
      • (6)git push
        • 指令
        • 示例
      • (7)git log
        • 指令
        • 示例
      • (8)git rm
        • 指令
        • 示例
      • (9)git status
        • 指令
        • 示例

一、git的历史

git的创始人是Linus Torvalds,或许有些人会觉得这个名字听起来很耳熟,没错,Linus Torvalds就是linux的创始人,我们曾在linux专栏的第一章中提及到这位伟大的人。
Linus Torvalds(图片来源于网络)

在2005年的时候,linux越来越受开发者的欢迎,越来越多的开发者向Linus Torvalds投稿有关更新linux内核的代码。随着投稿越来越多,linux内核越来越完善,但同时也出现了一个严重的问题:版本管理问题。每一次的更新都代表着版本的迭代,迭代的次数多了,版本之间的差异在Linus Torvalds的头脑中就逐渐模糊了。此时,Linus Torvalds急需一个版本管理工具。

当Linus Torvalds产生这种需求的时候,他开始寻找市场上的版本管理工具。最终,Linus Torvalds找到了一个付费的版本管理工具:BitKeeper(BK)。由于BK的创始人Larry McVoy 是linux的粉丝,所以他讲BitKeeper免费提供给linux的开发者。在使用了一段时间后,一位linux的开发者的试图破解BitKeeper,这一行为使得BitKeeper十分不满,因此,BitKeeper终止了linux开发者的免费使用权。

使用权被终止后,Linux的创始人总结了BitKeeper的一些优缺点,同时结合了一些自己的想法。Linus Torvalds在十天左右的时间里写出了一款开源的版本管理软件——git。git由此而来,但并没有止步于此。到现在为止,git可以说已经成为了世界上最受欢迎的版本管理软件。

二、git的特点与发展

1、git的特点

在git创建之前,大部分的版本管理工具几乎都是采用的集中化的版本控制系统。这类系统都有一个单一的版本集中管理的服务器,在服务器上保存着所有的版本,相关的开发人员会通过客户端连接到这台服务器,然后再取出最新的文件版本或者提交自己的更新。但这种做法存在着一个很大的问题,如果中央的服务器出现了问题,那么所有的开发者都无法从服务器中下载最新的代码版本。除此以外,如果中央的服务器被损坏了,这就有可能导致代码版本丢失。由于只有这台服务器存有所有的代码版本,所以一旦丢失,将没有备份修复。综上所述,这种版本管理系统是有很大的风险的。

git则采用了一种分布式的版本管理系统。开发者并不只是提取最新的代码版本。而是将代码仓库整个镜像复制下来,这就使得每个开发者的电脑上都有一个完整的代码备份。如果某个开发者的电脑发生了一些意外,并不会影响到其他开发者的开发进度。同时,如果代码发生了丢失,其他开发者也可利用完整的镜像仓库对其进行修复。

2、git与github

作者相信很多程序员都听说过github这个网站。但是大部分人并不知道git与github的区别。通过上面的介绍,我们其实可以对git做一个总结。git是一款软件,这款软件可以将远端的代码仓库镜像复制到本地。而github是一个网站,这个网站是一个免费的代码托管仓库。即我们的代码可以让github网站帮助我们托管各种版本的代码。二者是相互配合的。如果用上学来做比喻的话,家就是本地,学校就是github,交通工具就是git,人就可以比作代码。我们可以通过交通工具git实现家(本地)与学校(github)的学生流动。
在这里插入图片描述

二、git的安装与注册

1、git的安装

这里以乌班图的linux为例。

sudo apt install git

2、git的使用

我们想要使用git,就得有一个托管平台来记录我们的代码,那么我们这里选择的平台就是gitee,由于github是一个国外的网站,所以访问速度略微有一些慢,如果大家无法科学上网的话,可以使用国内的代码托管平台:gitee(码云)。作者在这里选择码云还有一个理由,有的时候即便能够科学上网,github在clone,push的时候也经常出现一些网络错误。

(1)github注册

首先我们在网站gitee上注册一个自己的账号。

(2)创建远端仓库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
创建成功后,就可以找到这个仓库对应的链接,这个链接的作用是方便我们将远端仓库镜像复制到本地。

(3)将远端仓库镜像复制到本地仓库

指令

git clone 仓库链接

示例

在这里插入图片描述
这里需要注意的是,第一次使用的时候,会让我们输入gitee的用户名和密码。

(4)git add

指令

首先,我们先进入到本地的镜像仓库中,然后将我们想要添加的文件复制或剪切到仓库中。但此时我们直接粘贴过来的代码是不受git软件的管理的。因此,我们需要通过下面的指令告诉git软件我们想要添加的代码。

git add [文件名]

这里的文件名可以直接写..的意思是当前目录,即仓库中。所以git会将仓库内不受git管理的文件管理起来。

示例

在这里插入图片描述

(5)git commit

git add是将代码提交到暂存区,暂存区的概念这里不做细致的描述。git commit是将代码提交到分支。二者表面上看起来作用差不多,但实际上还是有区别的。

指令

git commit -m "代码日志(可以写你修改了什么内容)"

示例

在这里插入图片描述

(6)git push

将本地仓库同步到远端仓库。第一次提交可能需要写用户名和密码。

指令

git push

示例

在这里插入图片描述
此时我们在码云上就能够看到我们提交的代码了。如下图:
在这里插入图片描述
以上介绍的指令的作用是将自己的代码提交到远端仓库。
总结一下:流程为:git clone --> 代码复制到仓库 --> git add . --> git commit -->git push
除此以外,我们还可以通过一些指令来查看仓库的一些信息。

(7)git log

当我们将仓库复制到本地以后,我们可以通过下面指令查看该仓库的提交日志。

指令

git log

示例

在这里插入图片描述

(8)git rm

我们不仅可以添加文件,也可以删除一些文件。删除之后再进行:git add --> git commit --> git push,远端的仓库就会删除对应的文件。

指令

git rm 文件名

示例

在这里插入图片描述

(9)git status

查看远端仓库和本地仓库的同步状态

指令

git status

示例

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/712430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LIS实验室信息管理系统功能模块(Oracle数据库、Client/Server架构)

一、系统框架简介 1、技术框架 (1)总体框架: ♦SaaS架构的Client/Server应用 ♦服务可伸缩,多服务协同 ♦服务可拆分,功能易扩展 (2)技术细节: ♦体系结构:Client/Serv…

零基础小白暑假QT实训1

一.前言 今天就要开始暑假短学期的实训了,本来课堂也要求记笔记,这里我就开始分享我将来五天的学习过程吧。 二.QT安装过程 首先,提供一下我的链接: 本来上传到我的阿里云盘了的,结果压缩包不给分享,抱歉…

互联网高可用架构探讨 | 京东云技术团队

高可用指标与问题 高可用,英文单词High Availability,缩写HA,它是分布式系统架构设计中一个重要的度量。业界通常用多个9来衡量系统的可用性,如下表: 既然有可用率,有一定会存在不可用的情况。系统宕机一般…

【动态规划上分复盘】下降路径最小和|礼物的最大价值

欢迎 前言一、动态规划五部曲二、下降路径最小和思路:动态规划解法具体代码如下 三、礼物的最大价值思路:动态规划具体代码如下: 总结 前言 本文主要讲述动态规划思路的下降路径最小和以及礼物的最大价值两道题。 一、动态规划五部曲 1.确定状态表示&a…

61. 旋转链表

61. 旋转链表 原题链接:完成情况:解题思路:参考代码: 原题链接: 旋转链表 https://leetcode.cn/problems/rotate-list/ 完成情况: 解题思路: 参考代码: package 西湖算法题解_…

【C语言】指针进阶[中](函数指针、函数指针数组、指向函数指针数组的指针)

简单不先于复杂,而是在复杂之后。 目录 1. 函数指针 1.1 函数指针的用途 2. 函数指针数组 3. 指向函数指针数组的指针 1. 函数指针 这里的 * 可以省略: 因为函数指针本质上是一个指针,存储了一个函数的地址,因此可以通过函数指针调用对…

解锁虚拟人IP“悦小满”新玩法,怎么用动捕设备化身多重身份?

在数字时代,虚拟人IP成为文化产业与数字技术、数字平台相融合的产物。虚拟人IP是文化IP文化产业发展的新内核。 广东网络广播电视台顺应时代发展,推出了全球首个粤语虚拟偶像“悦小满”,具备着Z世代所喜爱的2.5次元的3D虚拟形象,…

React 企业级开发必备, 我来带你快速入门 !

目录 一、为什么我来安利你学习 React? 二、使用 React 的前置工作 三、简易 demo 学开发 3.1、jsx语法 3.2、函数式组件 demo 3.3、简单类组件定义 3.4、复杂类组件定义 3.4.1、state 写法一:复杂式 写法二:简便式 3.4.2、props 类型限制…

界面干净整洁的windows桌面清单软件有哪些

无论是工作还是日常生活,我们都有各种各样的任务需要完成。然而,如果不进行有效的规划和管理,很容易导致遗漏和拖延,影响工作效率。而一个界面干净整洁的Windows桌面清单,能够帮助我们更好地规划和安排待办事项&#x…

优雅编码:WebStorm引领你迈向开发巅峰

目录 引言WebStrom的优点WebStorm的缺点自用插件推荐总结: WebStorm 官网 引言 WebStorm 是一款功能强大的集成开发环境(IDE),它提供了许多功能和工具,帮助开发人员优雅编码。 因为我是一个前端开发工程师,…

力扣 -- 面试题 17.16. 按摩师

题目链接&#xff1a;面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; 下面是用动态规划的思想解决这道题的过程&#xff0c;相信各位小伙伴都能看懂并且掌握这道经典的动规题目滴。 参考代码&#xff1a; class Solution { public:int massage(vector<int…

哪款恢复数据的软件好用,数据恢复成功率高吗

我们的日常工作中免不了出现误删或者因为系统崩溃而丢失重要的文件的情况&#xff0c;这些文件的丢失会对我们的工作生活造成或多或少的损失。其实我们可以利用一些专业的软件来恢复这些丢失的数据。 许多网友会有疑问&#xff0c;哪款恢复数据的软件好用&#xff0c;数据恢复成…

2021-04-29 VSC++:吻合日。

缘由https://bbs.csdn.net/topics/399168383 void 吻合日() {//缘由https://bbs.csdn.net/topics/399168383int n 0, n1 0, y 0, y1 0, h 0, h1 0,z 0, j 0, x 0, t 0;std::cin >> n >> y >> h;z 自适年一月一日周一值(n) h;y1 y; t 返回月的…

Devops之制品库平台实践-nexus

Devops之制品库平台实践-nexus 目录 本节实践 实战名称&#x1f498; 实践&#xff1a;配置Maven代理仓库(测试成功)-2022.6.7&#x1f498; 实践&#xff1a;创建Maven本地仓库&#xff08;依赖&#xff09;-2022.6.10(测试成功)&#x1f498; 实践&#xff1a;创建Raw本地仓…

Java模拟OPC Server服务器并创建节点代码实现

前言 模拟OPC Server服务器的方法除了使用KEPServerEX6软件以外&#xff0c;还可以使用java代码模拟启动一个opc server。下文详细讲解&#xff0c;如何使用java代码&#xff0c;实现模拟一个或者多个opc server服务器。 引入依赖 首先在Maven项目的pom.xml文件中引入所需的…

量水堰计的作用是什么有什么特点

水库大坝安全监测中&#xff0c;渗流监测是一个重要的组成部分。量水堰计作为一种测量流量的仪器&#xff0c;在渗流监测中起着至关重要的作用。其工作原理是&#xff0c;在进水口处设置量水堰&#xff0c;量水堰上安装有磁致伸缩液位传感器&#xff0c;可以实时记录通过量水堰…

【ARM】-IRQ 和 FIQ 异常中断处理程序的返回

文章目录 处理流程示例代码实现 处理流程 通常处理器执行完当前指令后&#xff0c;查询 IRQ 中断引脚及 FIQ 中断引脚&#xff0c;并且查看系统是否允许 IRQ 中断及 FIQ中断。 如果有中断引脚有效&#xff0c;并且系统允许该中断产生&#xff0c;处理器将产生 IRQ 异常中断或 …

自动化测试selenium篇(一)

一、自动化测试 1.1自动化测试介绍 自动化测试就相当于将人工测试手段进行转换&#xff0c;让代码去执行 1.2 自动化测试的分类 单元测试、接口测试、UI自动化测试 二、selenium介绍 2.1 selenium是什么 Selenium是web应用中基于UI的自动化测试框架 2.2 selenium的特点…

Redis的主从复制模式

主从复制就是Redis集群的策略 配从库不配主库&#xff1a;小弟可以选择谁是大哥&#xff0c;但大哥没有权利去选择小弟 读写分离&#xff1a;主机写&#xff0c;从机读 集群配置和搭建 1.将虚拟机中的CentOS(192.168.40.100)重新复制两份 2.将新复制的静态ip改一下,192.168.40.…

https 证书到期,手动更新

记录一下&#xff0c;因为 3 个月后还会用到的。。 1. 验证域名所有权&#xff08;在某个目录下放置指定文件验证&#xff09; http://172.245.xxx.xxx/.well-known/pki-validation/3C42D2093F4B0237224A95xxxxxxx.txt 2. 替换下载下来的证书文件 3. 检查&#x1f9d0; 喜欢或…