Git初始

一)git的介绍:

1)假设现在有一个文档,你的老板要求你针对于这份文件进行修改,进行完成的修改的版本是版本1,接下来是文档2,修改完文档2以后,接下来老板还不同意,于是又有了文档三,文档四,但是此时老板说第一个版本的文档是最好的,但是此时最终文档保存的内容是文档四最终的内容,此时想要拿到第一次文档修改的内容是无法拿到的,此时这一份工作就无法完成了,这种情况是针对于一份文档做多次的修改,我们无法针对于不同的文档进行管理,我无法拿到第一次修改的内容,也无法拿到第二次,第三次修改的内容;

2)此时第二次的时候,我的老板有要求再来修改一份文档,此时我们将第一次修改完成的文档是设计文档V1,此时设计文档V1完成以后,老板说你的文档不靠谱,此时你再去给我修改,但是此时我会把文档V1复制一份,此时就得到了另一款设计文档,就是设计文档V2,此时我们手里面就有了两个版本的文档,此时无论是第一个版本的文档还是第二个版本的文档我都有,此时果然当文档2上传的时候老板此时还不满意,我就针对于这个文档反反复复的进行修改,此时已经把设计文档更新到了文档V5,此时老板说你修改的这些文档还不如你当初修改的第一份文档,此时我就把第一份文档开开心心的交给他了,对一个文档进行多个版本的管理这是仅仅在文档内容比较少的情况下,但是如果文档升级版本过多,此时维护的成本也越来越高,是很有挑战的,各自的版本的修改的内容还是什么还知道吗?

3)版本控制器就由此诞生了, 可以记录每一次代码的改动和版本的迭代都可以记录起来,记录每一次的修改的内容以及版本迭代的一个管理系统,git就是目前最主流的版本控制器,git可以帮助我们控制电脑上所有格式的文件或者是文档,对于开发人员来说,可以管理软件开发中的源代码文件

二)安装git

1)查看git是否已经被安装:git --version

2)卸载git:sudo yum remove git -y

3)安装git:sudo yum install git -y

三)创建git的本地仓库:

1)git是一个版本控制系统也是一个版本控制器,如果记录每一次修改的内容和版本迭代的一些内容,虽然可以使用git追踪管理,但是这些文件内容不可以存放在电脑上面的任意位置,如果这样的话git就不能追踪管理了,如果想要管理这些文件,就需要把这些文件放到仓库中

2)只有在仓库中的文件才能被git追踪并且管理,所以先创建一个文件目录,然后尝试使用命令来创建仓库,git init命令就可以在当前文件目录下创建一个本地仓库,点击回车即可

3)由此可以看出当前目录gitcode下面有叫做.git的目录,这是执行git init命令以后新增的

4)使用tree命令,可以看到在.git/隐藏目录下面有很多东西,这个隐藏目录是用来追踪和管理仓库的,注意不要修改这个隐藏下面的内容,否则会把这个git仓库给破坏掉

5)最后在gitcode目录下面配置name选项和email选项,如果不配置这两个属性,那么将来再进行操作本地文件的时候就会出现问题,下面是命令

git config:git config user.name+"自己的自定义字符串" 

查看所有已经被设置过的键值对:git config -l

删除已经的键值对:git  config --unset  user.name,想把name删除掉

我们在服务器上面不止可以配置一个本地仓库,可以创建多个本地仓库

git config --global  user.name "XX",这里面的global表示在当前的服务器上的所有本地git仓库都进行设置生效

git config --global unset --set

四)认识工作区,暂缓区,版本库

在当前的情况下,在gitcode目录下创建一个readMe目录,但是Git是不能管理readMe文件的

 .git是仓库,就是版本库(仓库),但是readMe文件本身并没有存在于本地仓库里面

执行tree .git下面的目录如下:是不可以在.git下直接添加文件的

工作区:就是在电脑上写代码或者文件的目录,咱们的git是不可以直接管理工作区的文件的

.git目录:版本库

1)add命令:执行add命令以后会将工作区中的新增,修改删除的内容保存到版本库的暂存区中

2)commit命令:将暂存区的内容存放到master分支下里面也是存放的是修改文件的内容的索引,只有执行commit操作以后才算真正的写入了一个版本库

3)对象库objects:每一次执行add命令以后,修改的工作区的内容会写入到对象库中的一个新的git对象中,这就相当于是维护了工作区的版本,就做好了对于一个文件版本的管理,对应的是.git目录下面的objects目录;

从head指针开始,就可以拿到所有文件修改的内容,就可以拿到master的分支,对应的是.git目录下面的head目录

4)暂缓区:英⽂index,⼀般存放在.git⽬录下的/index⽂件.git/index中,把暂存区有时也叫作索引

5)版本库:也被称之为是仓库,工作区有一个隐藏目录.git,他不算作是工作区,而是git的版本库这个版本库里面的所有文件都是可以被git管理起来的,每一个文件的修改删除,git都是可以追踪的,以便任何时候都是可以追踪历史,或者在将来某一个时刻可以被还原

五)commit add命令

git add readMe,如果要是针对于readMe文件进行了修改,就把readMe文件的修改放在暂缓区中

git add .如果要是针对于工作区中的任意文件进行了修改,就把任意文件的修改放在暂缓区中

git commit -m "描述信息",可以写添加了第一个文件

git log的作用就是看出最近的提交的信息,每一次提交都是随机生成一个ID

或者使用git log --pretty=oneline

查看.git目录下面的HEAD目录下面的内容

cat ./.git/HEAD可以直接看到HEAD指针直接指向MASTER的分支

下面来看一下master中的内容,这里存放的就是最新的提交的修改ID

现在左边执行 cat ./.git/refs/heads/master,然后根据打印出来的ID来找到objects中的git对象

最后通过git cat-file -p+上一步查询出来的ID

可以在最底层看到提交版本时候的描述信息,这个是自己添加的,还包括上一次提交的commitID,还包括是谁修改的版本信息,最上面的tree后面的ID很奇怪,我们打印一下:

这里面的打印出来的内容就是我们在此次版本中新增的文件

我们继续打印一下blob后面的ID的内容:打印出来就是此次对于文件的修改操作,比如说新增加的文件内容,这都会被git记录下来,objects中存放的就是已经被修改的对象库中;

总结:index中存放的就是add后新增的内容(真对于文件来说),master存放的就是最新提交的commitID

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

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

相关文章

Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)

近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI&am…

基于PHP的蛋糕购物商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的蛋糕购物商城系统 一 介绍 此蛋糕购物商城基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈:phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销…

【深度学习】序列生成模型(五):评价方法计算实例:计算BLEU-N得分【理论到程序】

文章目录 一、BLEU-N得分(Bilingual Evaluation Understudy)1. 定义2. 计算N1N2BLEU-N 得分 3. 程序 给定一个生成序列“The cat sat on the mat”和两个参考序列“The cat is on the mat”“The bird sat on the bush”分别计算BLEU-N和ROUGE-N得分(N1或…

css实现0.5px宽度/高度显——属性: transform: scale

在大多数设备上,实际上无法直接使用 CSS 来精确地创建 0.5 像素的边框。因为大多数屏幕的最小渲染单位是一个物理像素,所以通常只能以整数像素单位渲染边框。但是,有一些技巧可以模拟出看起来像是 0.5 像素的边框。 这里介绍使用&#xff1a…

阶段十-springsecurity总结

jwt认证流程 SpringSecurity 认证过程 第一步: 创建一个类实现UserDetailsService接口,重写其中的方法 通过重写 public UserDetails loadUserByUsername(String username) 方法 从数据库校验用户输入的用户名 配置SecurityConfig Bean注入 Passwor…

node.js mongoose aggregate

目录 官方文档 简述 Aggregate的原型方法 aggregate进行操作 官方文档 Mongoose v8.0.3: Aggregate 简述 在 Mongoose 中,Aggregate 是用于执行 MongoDB 聚合操作的类。MongoDB 聚合操作是一种强大的数据处理工具,可以用于对集合中的文档进行变换和…

1.【分布式】分布式事务详解

分布式事务 1.分布式事务是什么?数据库事务 2.分布式事务产生的原因?存储层拆分服务层拆分 3.分布式事务解决方案4.分布式事务有哪些开源组件SeateTCC 分布式服务组件基于消息补偿的最终一致性 5.两阶段提交,三阶段协议详解二阶段提交协议三阶…

单片机应用实例:LED显示电脑电子钟

本例介绍一种用LED制作的电脑电子钟(电脑万年历)。其制作完成装潢后的照片如下图: 上图中,年、月、日及时间选用的是1.2寸共阳数码管,星期选用的是2.3寸数码管,温度选用的是0.5寸数码管,也可根据…

文件操作(下)

标题的顺序是接着之前写的,希望这篇博客对你有帮助 七. 随机读写函数 实际上,无论是读还是写,在一次调用顺序读写函数,文件指针会移到已经读过或者写过的下一个位置,从那个位置开始下一次读和写(在文件没有…

Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)

目录 一、ansible概述 1、简介 2、Ansible主要功能: 3、Ansible的另一个特点:所有模块都是幂等性 4、Ansible的优点: 5、Ansible的四大组件: 二、ansible环境部署: 1、环境: 2、安装ansible&#…

QT Widget - 随便画个圆

简介 实现在界面中画一个圆, 其实目的是想画一个LED效果的圆。代码 #include <QApplication> #include <QWidget> #include <QPainter> #include <QColor> #include <QPen>class LEDWidget : public QWidget { public:LEDWidget(QWidget *pare…

WPF仿网易云搭建笔记(7):HandyControl重构

文章目录 专栏和Gitee仓库前言相关文章 新建项目项目环境项目结构 代码结果结尾 专栏和Gitee仓库 WPF仿网易云 Gitee仓库 WPF仿网易云 CSDN博客专栏 前言 最近我发现Material Design UI的功能比较简单&#xff0c;想实现一些比较简单的功能&#xff0c;比如消息提示&#xff0…

智能物联网汽车3d虚拟漫游展示增强消费者对品牌的认同感和归属感

汽车3D虚拟展示系统是一种基于web3D开发建模和VR虚拟现实技术制作的360度立体化三维汽车全景展示。它通过计算机1:1模拟真实的汽车外观、内饰和驾驶体验&#xff0c;让消费者在购车前就能够更加深入地了解车辆的性能、特点和设计风格。 华锐视点云展平台是一个专业的三维虚拟展…

音乐制作软件Studio One mac软件特点

Studio One mac是一款专业的音乐制作软件&#xff0c;由美国PreSonus公司开发。该软件提供了全面的音频编辑和混音功能&#xff0c;包括录制、编曲、合成、采样等多种工具&#xff0c;可用于制作各种类型的音乐&#xff0c;如流行音乐、电子音乐、摇滚乐等。 Studio One mac软件…

Elasticsearch 索引生命周期和翻滚 (rollover) 策略

Elasticsearch 是搜索引擎中的摇滚明星&#xff0c;它的蓬勃发展在于使你的数据井井有条且速度快如闪电。 但当你的数据成为一场摇滚音乐会时&#xff0c;管理其生命周期就变得至关重要。 正确使用索引生命周期管理 (ILM) 和 rollover 策略&#xff0c;你的后台工作人员可确保顺…

[Toolschain cpp ros cmakelist python vscode] 记录写每次项目重复的设置和配置 不断更新

写在前面 用以前的设置&#xff0c;快速配置项目&#xff0c;以防长久不用忘记&#xff0c;部分资料在资源文件里还没有整理 outline cmakelist 复用vscode 找到头文件vscode debug现有代码直接关联远端gitros杂记repo 杂记glog杂记 cmakelist 复用 包含了根据系统路径找库…

龙迅LT6211B,HDMI1.4转LVDS,应用于AR/VR市场

产品描述 LT6211B 是一款用于 VR/ 显示应用的高性能 HDMI1.4 至 LVDS 芯片。 对于 LVDS 输出&#xff0c;LT6211B 可配置为单端口、双端口或四端口。对于2D视频流&#xff0c;同一视频流可以映射到两个单独的面板&#xff0c;对于3D视频格式&#xff0c;左侧数据可以发送到一个…

深入理解 HTTP 和 HTTPS:提升你的网站安全性(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

PowerQuery:不会直接访问数据源,请重新生成此数据组合

报错信息&#xff1a; ⚠️ Formula.Firewall: 查询“到货表_已有数据”(步骤“删除的其他列”) 将引用其他查询或步骤&#xff0c;因此可能不会直接访问数据源。请重新生成此数据组合。 查询“”将引用其他查询或步骤&#xff0c;因此可能不会直接访问数据源&#xff0c;请重…

YOLOv8改进 | 主干篇 | 轻量级网络ShuffleNetV1(附代码+修改教程)

一、本文内容 本文给大家带来的改进内容是ShuffleNetV1&#xff0c;这是一种为移动设备设计的高效CNN架构。它通过使用点群卷积和通道混洗等操作&#xff0c;减少了计算成本&#xff0c;同时保持了准确性&#xff0c;通过这些技术&#xff0c;ShuffleNet在降低计算复杂度的同时…