浅析git

news2024/11/15 13:47:41

目录

git 的历史

git 的感性认识

git 在Linux下的操作

git三板斧


git 的历史

雷纳托瓦兹,想必大家对这个名字并不陌生,他是Linux内核的最早作者,随后发起了这个开源项目,担任Linux内核的首要架构师与项目协调者,是当今世界最著名的电脑程序员、黑客之一。而git这个广泛用于全球的版本控制系统也是他的作品。

雷纳托瓦兹开发了Linux之后,因为Linux是开源项目,他每天会收到大量来自世界各地的由高级程序员发来的关于Linux的改进代码,而他需要对这些意见进行整合,将大量代码筛选合并,对Linux版本升级维护。

这个工作量可想而知,在这一过程中会有大量不同版本诞生,因此需要好好记录存储这些不同版本,此时就需要优质的版本控制器。雷纳托瓦兹找到一家公司希望能使用旗下的软件,但被告知要付费。Linux团队并不缺钱但是考虑到Linux本是开源项目,使用收费版本控制器违背了开源精神,并且不利于其他程序员加入团队。但后来该公司意识到Linux是可以改变世界的项目选择免费提供软件。

但好景不长,由于Linux社区一些程序员试图破解公司的版本控制器被发现,公司禁止Linux团队再使用该软件,于是雷纳托瓦兹花费数周写出了初代 git,并且也进行了开源。后 git发展越来越好,被商业化成了GitHub。而在国内,连接GitHub经常出问题,于是国内工程师也将git 包装了一下,就是gitee。

这里的GitHub和gitee,都是代码托管网站。不基于客户端,使用git工具对代码进行管理。

不仅限于Linux、也不仅仅是C\C++,各平台各语言的代码都可以托管。

git 的感性认识

上面说了git的发展历史,但目前只知道git是个版本控制器,以及GitHub和gitee是什么,接下来我举个例子从感性的角度带大家理解一下git。

大学里有一位化学老师,很负责很严谨,别的老师不会细看的学生写的实验报告他总是一字不拉的认真看。张三这天写了份报告上交,写的很烂,老师让他好好修改一下再交。于是张三改好了又来找老师,结果这次改得反而更烂,老师生气地指出了报告的错误内容,让他回去再改。第二天张三拿着报告给老师看,老师两眼一黑,写的还不如前面的。于是无奈的对张三说,你还是把第一份报告交给我吧,也不用改了。张三一拍脑门,他已经把前两份报告扔掉了。回去后张三和舍友李四说了此事,李四表示你为什么不早点找我,我每一次都提前把报告备份好,再交给老师,这就不怕了。

张三此时醒悟,给了李四十块钱托管费,日后所有报告的备份管理工作都交给了李四。李四也嗅到了商机,作为一名计算机学生,他写了一个版本控制器并制作了一个网页,可以管理登录用户的各种报告及文件。

这里一系列操作和git本质上是一样的,都是不用客户端,在浏览器网页上操作。用户将代码托管到gitee上,自动会进行版本管理,并提供历史版本获取和可视化服务。

git 在Linux下的操作

这里我在gitee上操作。首先创建仓库,创建完成后点击右上角的克隆\下载。

 使用HTTPS路径,SSH需要密钥比较麻烦,HTTPS路上加密即可。

复制路径在Linux下克隆,使用 git clone 命令:

 这样就将gitee的远端仓库同步到本地了。

这时本地就有一个仓库目录test,进入test里面是我历史提交的代码。

在gitee上我发现有个.gitignore在本地目录里没有,因为Linux下 .开头的文件都被隐藏了。

 

 ls -al 找到该文件:

 查看 .gitignore,发现里面都是些文件后缀:

ignore意思是忽略,以在该文件中出现的后缀 的文件不会推送到远端gitee上。

一般我们提交代码也都是只提交需要.c  .cpp   .java这种文件,像.txt  .swf后缀的文件没必要提交,会占用很多空间,.gitignore文件会帮助我们减少不必要的推送文件。

还有一个隐藏文件.git,这其实就是本地仓库,.git文件里的内容+目录 = 本地仓库(git仓库)

所谓push到远端就是将.git文件里的内容同步到gitee上。

git三板斧

git的三板斧:add, commit, push

git add命令是将新创建的文件添加到本地仓库的临时区域 (注意:这里还未真正添加到仓库)

git commit -m '日志' : 提交,将刚刚add到临时区域的文件提交到本地仓库的.git目录下,也就是将新文件合并到本地仓库。注意这里提交日志不能乱写!

git push:这才是真正将新文件推送到远端仓库。

还有一个常用的git pull 命令,拉取。

当我们在远端修改代码并且提交时,如果本地仓库在也修改,会出现不匹配不同步的情况。这时可以在本地git pull一下,将远端的代码拉取下来同步了,再git push提交。

上面说提交日志不能乱写,因为都会记录在册,git log就能查看。

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

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

相关文章

Kafka入门(一)

1、Kafka简介 Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域(hadoop集群)、物联网领域。其主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能…

华为路由器Talent服务配置

前言 Telnet:console是通过本地进行设备管理,还有一种是通过远程登录的方式进行设备管理,也就是虚拟终端。通过发送信息进行控制,不受终端和服务器的位置限制(只要可以通信,服务器启用了Telnet功能即可&am…

Python 的基础语法

第一个 Python 程序交互式编程交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下:$ pythonPython 2.7.6 (default, Sep 9 2014, 15:04:36)[GCC 4.2…

LinkedHashSet源码阅读理解

概述 1、底层:HashSet LinkedHashMap 2、创建节点时将节点插入链表,因此有序 3、线程不安全 源码理解 demo: public class LinkedHashSetDemo {public static void main(String[] args) {test();}public static void test(){LinkedHas…

CDMP认证考试考前你需要了解的那些事

对国内的数据从业人员来说,CDMP算比较新的考试,目前相关介绍很少,小编整理了CDMP考试先关的一些内容,希望对正在考虑考取CDMP认证的你有所帮助!CDMP认证有几个等级?4个。A级(基础级)…

为什么Google优化排名前期要做长尾关键词?谷歌seo怎么做?

本文主要分享关于谷歌长尾词对于外贸网站获取流量和排名的重要性。 本文由光算创作,有可能会被修改和剽窃,我们佛系对待这种行为吧。 Google优化排名是指在Google 搜索结果中,使外贸站的排名更高。 长尾关键词是指长度较长的,不…

((蓝桥杯 刷题全集)【备战(蓝桥杯)算法竞赛-第2天】( 从头开始重新做题,记录备战竞赛路上的每一道题 )距离蓝桥杯还有65天

🏆🏆🏆🏆🏆🏆🏆 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录&a…

【计算机网络】Linux下路由配置总结

文章目录路由的基础知识Linux内核路由表使用route -n命令查看Linux内核路由表三种路由类型说明(Flags)配置路由route的命令设置包转发静态路由配置参考路由的基础知识 1)路由概念 路由: 跨越从源主机到目标主机的一个互联网络来转发数据包的过程路由器…

多线程代码案例之单例模式

目录 单例模式 饿汉模式 懒汉模式 问题一 问题二 问题三 单例模式 单例模式,是设计模式的一种。在有些特定场景中,有的特定的类,只能创建出一个实例,不应该创建多个实例。单例模式就可以保证这样的需求。例如JDBC中的Data…

OpenMMLab AI实战营笔记前两次课

文章目录1计算机视觉算法基础与 OpenMMLabCV引入OpenMMLab基础知识:2 计算机视觉之图像分类算法基础传统方法--设计图像特征AlexNet VGG 等神经网络搜索(2016)Vision/Swin Transformer轻量化卷积神经网络注意力机制 Attention Mechanism模型学…

文档存储Elasticsearch系列--3分布式存储和搜索过程

前言:ES 作为分布式文档的存储,它的存储过程是怎样的,它的分布式检索过程又是怎样的; 1 分布式存储过程: 为了说明目的, 我们 假设有一个集群由三个节点组成。 它包含一个叫 blogs 的索引,有两个主分片&a…

linux查看/设置某个进程运行的CPU核

目录 1.ps -eF 2.top命令 3.pidstat命令 4.使用taskset指令 5.使用taskset指定进程运行在CPU核 1.ps -eF #查看fwd进程运行在哪个cpu核上 [rootCENTOS57 rpm]# ps -eF | grep fwd 2.top命令 (1)top (2)按f键可以选择下面配置选项 P Last Used Cpu (SMP) (3)Es…

【深度学习】YOLO系列(v1-v3+tinyv3)解析

YOLOv1 正负样本选取 如果目标的中心落在cell中,那么这个cell就负责预测这个类别。 由于每个cell预测两个bbox,那么选择与GT IOU大的bbox来预测这个目标,也就是这一个框的 1 i j o b j = 1 , 1 i j n o b j

通过Python的pptx库操作ppt-替换文本和图片-批量生成任意自定义图片

通过Python的pptx库操作ppt-替换文本和图片-批量生成任意自定义图片 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 一、前言 这是一个全部的脚本,我们知道,…

阿里巴巴最全Java、架构师、大数据、算法PPT技术栈图册

我只截图不说话,PPT大全,氛围研发篇、算法篇、大数据、Java后端架构!除了大家熟悉的交易、支付场景外,支撑起阿里双十一交易1682亿元的“超级工程”其实包括以下但不限于客服、搜索、推荐、广告、库存、物流、云计算等。 Java核心…

第二章 Linux系统安装

第一节 安装计划 基本思路是使用VMWare这样的虚拟机软件创建一个“虚拟计算机”,在虚拟机上安装Linux系统。 安装vm软件通过vm软件来创建一个虚拟机空间通过vm软件来在创建好的虚拟空间上,安装我们的Centos操作系统使用Centos 第二节 vmware下载安装 和…

python-实现保留3位有效数字(四舍六入五成双规则)

项目场景: 实现保留3位有效数字(四舍六入五成双规则) 问题描述 输入:输出: 1234 123412 12.04 4.000.2 0.2000.32 0.3201.3 1.301.235 1.241.245 1.241.2451 1.25示例分析: 解决代码: from de…

jvm启动流程以及自定义加载器

类加载运行过程,当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM。public class Math {public static final int initData 666;public static final User user new User();public int compute() {// 一个方法对应…

【C++】对象与类

【C】对象与类 文章目录【C】对象与类1、定义1.1 对象的定义1.2 类的定义2、对象与类的创建2.1 类的创建2.2 对象的创建3、封装3.1 访问限定符3.2 对封装的解释4、类的实例化5、类、对象大小6、this指针6.1 this指针概念6.2 this指针特点1、定义 1.1 对象的定义 现实世界对对…

写哪个IB科目的EE最易得A?

综合了IB论坛上学生的建议,根据IB毕业生们的看法: E同学:选择你感兴趣的科目写EE。 R同学:我推荐写IB英语EE,在我看来,英语很容易找到你感兴趣的内容,因为英语 EE 适用于诸多的不同主题。我觉得…