Git(二)版本控制、发展历史、初始化配置、别名

目录

    • 一、版本控制
      • 1.1 为什么要使用版本控制?
      • 1.2 集中化的版本控制系统
      • 1.3 分布式的版本控制系统
      • 1.3 两种版本控制系统对比
        • 集中式(svn)
        • 分布式(git)
    • 二、发展历史
    • 三、初始化配置
      • 3.1 配置文件
      • 3.2 配置内容
    • 四、别名

在这里插入图片描述

  • 官网地址: https://www.git-scm.com/
  • 官方文档: https://www.git-scm.com/docs
  • 官方电子书: https://git-scm.com/book/zh/v2
  • GitHub: https://github.com/git/git

一、版本控制

版本控制:是指记录一个或若干个文件的内容变化,以便将来查阅特定版本修订情况的系统。

1.1 为什么要使用版本控制?

  • 有了版本控制,我们可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。(就算我们将项目中的文件改的面目全非,也可以轻松恢复到原先的样子。)
  • 有了版本控制,我们可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致问题出现的原因等等。

常见的版本控制系统有两种:集中化的版本控制系统分布式的版本控制系统

1.2 集中化的版本控制系统

集中化的版本控制系统诸如:CVSsvn 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新。在版本控制初期,这已成为版本控制系统的标准做法。

这种做法带来了好处,现在每个人都可以在一定程度上看到项目中的其他人正在做什么。而管理员也可以轻松掌握每个开发者的权限,并且管理一个集中化的版本控制系统要远比在哥哥客户端上维护本地数据库来得轻松容易。

1.3 分布式的版本控制系统

分布式版本控制系统诸如:Git、BitKeeper 等,客户端并不只是提取最新版本的文件快照,而是把代码仓库完整地拉取下来。这样,任何一处协同工作用地服务器发生故障,事后都可以用任何一个拉去下来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。

更进一步来看,许多这类系统都可以指定和若干不同的远程代码仓库进行交互。藉此,我们就可以在同一项目中分别和不同工作小组的人相互协作。

分布式的版本控制系统在管理项目时,存放的不是项目版本与版本之间的差异,它存的是索引(所需磁盘空间很少,所以每个客户端都可以放下整个项目的历史记录)。

1.3 两种版本控制系统对比

集中式(svn)

优点:

  • 代码存放在单一的服务器上,便于项目的管理。

缺点:

  • 由于存储的是文件差异,导致回滚的速度会很慢;
  • 服务器宕机,员工写的代码得不到保障;
  • 本地无法新建分支,每次需要在服务器新建分支;
  • 服务器磁盘损坏,每个项目的历史记录都会丢失。
分布式(git)

优点:

  • 由于存储的是索引,回滚速度极快;
  • 分布式存储,不担心服务器宕机或损毁;
  • 支持本地新建分支,操作方便。

缺点:

  • 操作命令相比 svn 较多,存在学习成本。

二、发展历史

同生活中的许多伟大事件一样,Git 诞生于一个极具创造性的年代。

Linux 内核开源项目有着为数众多的参与者。1991-2002 年间,绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。

在这里插入图片描述

到了 2005 年,开发 BitKepper 的商业公司同 Linux 内核开源社区的合作关系结束。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linux Torvalds/林纳斯·托瓦兹)不得不西区搅匀,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对于新的系统制定了若干目标:

  • 分支切换速度快、容量小(压缩)、简单的设计、完全分布式
  • 对非线性开发模式的强力支持(允许上千个并行开发的分支)
  • 有能力搞笑管理类似 Linux 内核一样的超大规模项目(速度和数据量)

自诞生于 2005 年依赖,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。他的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统可以应付各种复杂的项目开发需求。


三、初始化配置

一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,我们随时可以用相同的命令修改已有配置。

3.1 配置文件

Git 提供了一个 git config 的命令来配置或读取相应的工作环境变量,而正是这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

  • /etc/gitconfig 文件:系统中对 所有用户 都普遍适配的配置。若使用 git config --system,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于 该用户。若使用 git config --global,读写的就是这个文件。
  • .git/config 文件:当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件)这里的配置仅仅针对 当前项目 有效。

注意:每一个级别的配置都会覆盖上层的相同配置。

3.2 配置内容

主要需要配置的是你个人的 用户名邮箱地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,如何联系,所以会随更新内容一起被永久纳入历史记录。

-- 配置用户名
git config --global user.name "ACGkaka"
-- 配置邮箱地址
git config --global user.email acgkaka@example.com
-- 查看配置信息
git config --list
-- 删除配置信息
git config --global --unset user.email

四、别名

Git 并不会在你输入部分命令时自动推断出你想要的命令。如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松为每一个命令设置一个别名。

例如:

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status

当要输入 git commit 时,只需要输入 git ci 即可。

整理完毕,完结撒花~ 🌻





参考地址:

1.【尚硅谷】深入Git底层原理丨一套掌握git版本控制系统,https://www.bilibili.com/video/BV1Yi4y137eF/

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac 超好用的工具推荐

Arc Arc 是 2022 年 4 月发布的浏览器产品,在介绍 Arc 浏览器之前,让我们来看下以 Chrome、FireFox、Edge、Safari 为代表的的传统浏览器: 难怪《浏览器是怎么工作的》作者 Paul Irish 曾说,尽管 W3C 并未规范浏览器界面&#xf…

欧拉图相关的生成与计数问题探究

最近学了一波国家集训队2018论文的最后一个专题。顺便带上了一些我的注解。 先放一波这个论文 1.基本概念 欧拉图问题是图论中的一类特殊的问题。在本文的介绍过程中,我们将会使用一些图 论术语。为了使本文叙述准确,本节将给出一些术语的定义。 定义…

每日一练 | 华为认证真题练习Day122

1、路由器所有的接口属于同一个广播域。 A. 对 B. 错 2、下列配置默认路由的命令中,正确的是()。 A. [Huawei]ip route-static 0.0.0.0 0.0.0.0 192.168.1.1 B. [Huawei-Serial0]ip route-static 0.0.0.0 0.0.0.0 0.0.0.0 C. [Huawei]ip…

浅谈余压监控系统电气设计

安科瑞 华楠 摘 要:结合实际的工程设计案例,分析余压监控系统的设计,包括余压探测器、余压控制器、余压监控主机的控制原理等。防止人员在实际的火灾疏散过程中会出现楼梯间和前室之间、前室和室内走道之间防火门两侧压差过大,而…

HackTheBox - Starting Point -- Tier 0 ---Fawn

文章目录 一 题目二 实验过程 一 题目 Tags FTP、Network、Protocols、Reconnaissance、Anonymous/Guest Access译文:文件传输协议、网络、协议、侦察、匿名/访客访问Connect To attack the target machine, you must be on the same network.Connect to the Sta…

数字驱动,营销赋能丨工商职院电子商务专业学生,前往餐饮美食电商新业态基地试岗交流

纸上得来终觉浅,绝知此事要躬行。为了让学生更好的了解自己与所应聘岗位的匹配度,同时也希望在实际业务场景中,发掘自身优势,10月23日,四川产教融创园信息技术有限公司组织四川工商职业技术学院的电子商务专业学生一行…

《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网

目录 一. 在 Windows 操作系统中探测 HTTP/HTTPS 出网 1. Bitsadmin 命令 2.Certuil 命令 2.Linux系统探测HTTP/HTTPS出网 1.Curl命令 2.Wget命令 对目标服务器探测 HTTP/HTTPS 是否出网时,要根据目标系统类型执行命令,不同类型的操作系统使用的探…

【30】c++设计模式——>状态模式

状态模式概述 状态模式是一种行为型设计模式,它可以让一个对象在其内部状态发生变化时更改其行为。通过将每个状态封装成一个独立的类,我们可以使状态之间互相独立,并且使得状态的切换变得更加灵活、可扩展。(多个状态之间可以相…

uni-app 小宠物 - 会说话的小鸟

在 template 中 <view class"container"><view class"external-shape"><view class"face-box"><view class"eye-box eye-left"><view class"eyeball-box eyeball-left"><span class"…

适合在虚拟化环境中部署 Kubernetes 的三个场景

在《虚拟化 vs. 裸金属&#xff1a;K8s 部署环境架构与特性对比》文章中&#xff0c;我们从架构和特性的角度&#xff0c;对比了在虚拟化和裸金属环境部署 Kubernetes 的优劣势&#xff0c;并在文末列举了两者更适合的应用场景。本文&#xff0c;我们将聚焦以虚拟化环境支持 K8…

ubuntu20.04下安装nc

前言 nc在网络渗透测试中非常好用&#xff0c;这里的主要记一下Ubuntu20.04中nc的安装 编译安装 第一种方式是自己编译安装&#xff0c;先下载安装包 nc.zip wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download -O netcat-0.7.…

线性代数-Python-03:矩阵的变换 - 手写Matrix Transformation及numpy中的用法

文章目录 一、代码仓库二、旋转矩阵的推导及图形学中的矩阵变换2.1 让横坐标扩大a倍&#xff0c;纵坐标扩大b倍2.2 关于x轴翻转2.3 关于y轴翻转2.4 关于原点翻转&#xff08;x轴&#xff0c;y轴均翻转&#xff09;2.5 沿x方向错切2.6 沿y方向错切2.7 旋转2.8 单位矩阵2.9 矩阵的…

ES在企业项目中的实战总结,彻底掌握ES的使用

通过之前两篇文章 了解了ES的核心概念和基础使用学习进阶的DSL语法处理复杂的查询 这段时间通过在本企业代码中对ES框架的使用&#xff0c;总结了不少经验。主要分为三点 企业封装了ES原生的api&#xff0c;需要使用企业项目提供的接口实现 -------简单使用&#xff08;本章节目…

PyCharm中文使用详解

PyCharm是一个Python IDE&#xff0c;可以帮助程序员节省时间&#xff0c;提高生产力。那么具体怎么用呢&#xff1f;本文介绍了PyCharm的安装、插件、外部工具、专业功能等&#xff0c;希望对大家有所帮助。 之前没有系统介绍过PyCharm。如何配置环境&#xff0c;如何DeBug&a…

Go语言入门心法(十四): Go操作Redis实战

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 Go语言入门心法(六): HTTP面向客户端|服务端编程 Go语言入门心法(七): 并发与通道 Go语言入门心法(八): mysql驱动安装报错o…

数据安全小课堂开讲啦!看这里!

数据安全小课堂开讲啦&#xff01;看这里&#xff01; 1、什么是数据&#xff1f; 《数据安全法》第三条明确&#xff0c;本法所称的数据&#xff0c;就是指任何以电子或者其他方式对信息的记录。小到个人使用手机、电脑等电子产品时浏览的网页、下载的应用、存储的文件&…

前端数据可视化之【Echarts下载使用】

目录 &#x1f31f;下载&#x1f31f;浏览器引入&#x1f31f;模块化引入 &#x1f31f;使用&#x1f31f;基本使用步骤 &#x1f31f;绘制一个简单的图表&#x1f31f;写在最后 &#x1f31f;下载 &#x1f31f;浏览器引入 官网下载界面&#xff1a;官方网站 或 Echarts中文…

前端,CSS,背景颜色跟随轮播图片改变而改变(附源码)

首先看效果&#xff01; 比如轮播图时红色&#xff0c;那么背景的底色也是红色&#xff0c;轮播图时黄色&#xff0c;背景的底色也是黄色&#xff0c;这就是根据轮播图的图片切换&#xff0c;而改变背景颜色随轮播图颜色一致 话不多说&#xff0c;直接上代码&#xff01;非常简…

css-边框流水线

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"initial-scale1.0, user-scalableno" /><title></title><style type&…

centos搭建elastic集群

1、环境可以在同一台集群上搭建elastic&#xff0c;也可以在三台机器上搭建&#xff0c;这次演示的是在同一台机器搭建机器。 2、下载elastic &#xff1a;https://www.elastic.co/cn/downloads/past-releases#elasticsearch 2、​​​​​​ tar -zxvf elasticsearch-xxx-版…