Git企业开发级讲解(二)

news2024/10/6 0:30:31

在这里插入图片描述


📘北尘_:个人主页

🌎个人专栏:《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》

☀️走在路上,不忘来时的初心

文章目录

  • 一、添加⽂件--场景⼀
    • 1、操作
    • 2、演示
  • 二、查看 .git ⽂件
    • 1、tree .git命令
    • 2、内容讲解
    • 3、总结一下
  • 三、添加⽂件--场景⼆
  • 四、修改文件
  • 总结


一、添加⽂件–场景⼀

1、操作

在包含 .git 的⽬录下新建⼀个 ReadMe ⽂件,我们可以使⽤ git add 命令可以将⽂件添加到暂存区:

  1. 添加⼀个或多个⽂件到暂存区: git add [file1] [file2] …
  2. 添加指定⽬录到暂存区,包括⼦⽬录: git add [dir]
  3. 添加当前⽬录下的所有⽂件改动到暂存区: git add .

再使⽤ git commit 命令将暂存区内容添加到本地仓库中:

  1. 提交暂存区全部内容到本地仓库中: git commit -m “message”
  2. 提交暂存区的指定⽂件到仓库区: git commit [file1] [file2] … -m “message”

注意 git commit 后⾯的 -m 选项,要跟上描述本次提交的 message,由⽤⼾⾃⼰完成,这部分内
容绝对不能省略,并要好好描述,是⽤来记录你的提交细节,是给我们⼈看的。

2、演示

创建文件

touch ReadMe

在这里插入图片描述

文件输入内容

vim ReadMe
cat ReadMe

在这里插入图片描述

提交到暂存区

git add ReadMe

在这里插入图片描述

提交到master

在这里插入图片描述
在这里插入图片描述

git commit 命令执⾏成功后会告诉我们,1个⽂件被改动(就是我们新添加ReadMe⽂件),插⼊了两⾏内容(ReadMe有两⾏内容)。

我们还可以多次 add 不同的⽂件,⽽只 commit ⼀次便可以提交所有⽂件,是因为需要提交的⽂件是通通被 add 到暂存区中,然后⼀次性 commit 暂存区的所有修改。如:
在这里插入图片描述

截⾄⽬前为⽌,我们已经更够将代码直接提交⾄本地仓库了。我们可以使⽤ git log 命令,来查看下历史提交记录:
在这里插入图片描述

该命令显⽰从最近到最远的提交⽇志,并且可以看到我们 commit 时的⽇志消息。
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline 参数:

在这里插入图片描述
需要说明的是,我们看到的⼀⼤串类似 6d9a5e4…721a2 的是每次提交的 commit id (版本号),Git 的 commit id 不是1,2,3……递增的数字,⽽是⼀个 SHA1 计算出来的⼀个⾮常⼤的数字,⽤⼗六进制表⽰(你看到的 commit id 和我的肯定不⼀样,以你⾃⼰的为准)。


二、查看 .git ⽂件

1、tree .git命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、内容讲解

  1. index 就是我们的暂存区,add 后的内容都是添加到这⾥的。
  2. HEAD 就是我们的默认指向 master 分⽀的指针:

在这里插入图片描述

⽽默认的 master 分⽀,其实就是:

在这里插入图片描述
打印的 6d9a5e4972e5f69973bf3e8ebb527e23cea721a2 是什么东西呢?保存的就是当前最新的 commit id 。

  1. objects 为 Git 的对象库,⾥⾯包含了创建的各种版本库对象及内容。当执⾏ git add 命令时,暂存区的⽬录树被更新,同时⼯作区修改(或新增)的⽂件内容被写⼊到对象库中的⼀个新的对象中,就位于 “.git/objects” ⽬录下,让我们来看看这些对象有何⽤处:

在这里插入图片描述
查找 object 时要将 commit id 分成2部分,其前2位是⽂件夹名称,后38位是⽂件名称。
找到这个⽂件之后,⼀般不能直接看到⾥⾯是什么,该类⽂件是经过 sha (安全哈希算法)加密过的⽂件,好在我们可以使⽤ git cat-file 命令来查看版本库对象的内容:
在这里插入图片描述

其中,还有⼀⾏ tree bcc6b6348c70d8ff8920e64fd711f5ddac35b130 ,我们使⽤同样的⽅法,看看结果:
在这里插入图片描述

在看 ReadMe 对应的在看 ReadMe 对应的c940fc8d96f03c8bc23eabd2b8af558afde227f9
在这里插入图片描述
这是我们对ReadMe做的修改!!被git记录了下来!!

3、总结一下

• index: 暂存区, git add 后会更新该内容。
• HEAD: 默认指向 master 分⽀的⼀个指针。
• refs/heads/master: ⽂件⾥保存当前 master 分⽀的最新 commit id 。
• objects: 包含了创建的各种版本库对象及内容,可以简单理解为放了 git 维护的所有修改。


三、添加⽂件–场景⼆

学习到这⾥,我们已经清楚了如何向仓库中添加⽂件,并且对于⼯作区、暂存区、版本库也有了⼀定
的认识。那么我们再展⽰⼀种添加⽂件的场景,能加深对⼯作区、暂存区、版本库的理解,⽰例如:
在这里插入图片描述
在这里插入图片描述
提交后发现打印了 1 file changed, 0 insertions(+), 0 deletions(-) ,意思是只
有⼀个⽂件改变了,这时我们提出了疑问,不是新增了两个⽂件吗?
再来回忆下, git add 是将⽂件添加到暂存区, git commit 是将暂存区的内容添加到本地仓库中。由于我们并没有使⽤ git add file12,file12 就不在暂存区中维护,所以我们 commit 的时候
其实只是把已经在暂存区的 file11 提交了,⽽遗漏了⼯作区的 file12。如何提交 file12 呢?很简单,再次add , commit 即可。


四、修改文件

修改:增加,修改,删除
Git ⽐其他版本控制系统设计得优秀,因为 Git 跟踪并管理的是修改,⽽⾮⽂件。
什么是修改?⽐如你新增了⼀⾏,这就是⼀个修改,删除了⼀⾏,也是⼀个修改,更改了某些字符,也是⼀个修改,删了⼀些⼜加了⼀些,也是⼀个修改,甚⾄创建⼀个新⽂件,也算⼀个修改。
让我们将 ReadMe ⽂件进⾏⼀次修改:
在这里插入图片描述
此时,仓库中的 ReadMe 和我们⼯作区的 ReadMe 是不同的,如何查看当前仓库的状态呢? git status 命令⽤于查看在你上次提交之后是否有对⽂件进⾏再次修改。
在这里插入图片描述

上⾯的结果告诉我们,ReadMe 被修改过了,但还没有完成添加与提交。
⽬前,我们只知道⽂件被修改了,如果能知道具体哪些地⽅被修改了,就更好了。有同学会说,我刚改的我知道呀!可是,你还记得你三天前写了什么代码吗?或者没写?
在这里插入图片描述
在这里插入图片描述
git diff [file] 命令⽤来显⽰暂存区和⼯作区⽂件的差异,显⽰的格式正是Unix通⽤的diff格式。也可以使⽤ git diff HEAD – [file] 命令来查看版本库和⼯作区⽂件的区别。
知道了对 ReadMe 做了什么修改后,再把它提交到本地仓库就放⼼多了。
在这里插入图片描述
git add 之后,就没有看到上⾯ no changes added to commit (use “git add”
and/or “git commit -a”) 的消息了。接下来让我们继续 git commit 即可:

 git commit -m "add modify ReadMe file"

总结

Git版本控制器

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

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

相关文章

Riskified: 2023年电商政策滥用问题恶化,正严重挑战商家盈利底线

2023年11月14日,中国上海 —— 近日,由全球领先的电子商务欺诈和风险智能解决方案提供商 Riskified 发布的《政策滥用及其对商家的影响:2023年全球参考基准》报告显示,政策滥用问题正进一步恶化,超过九成电商商家正在承…

常用的Linux命令;Linux常用命令用法及实现方式

1.系统工作命令 (1)echo命令:echo命令用于在终端设备上输出字符串或变量提取后的值,语法格式为“echo [字符串] [$变量]”。 (2)date命令:date命令用于显示或设置系统的时间与日期,语法格式为“date [指定的格式]”。 (3)timedate…

微信怎么群发消息?答案在这,1分钟就能学会!

微信群发消息是一种方便快捷的消息发送方式,该功能允许用户一次性给多个好友发送相同的内容。一般来说,群发消息比较适用于发送节日祝福、通知、品牌推广等场景。微信怎么群发消息?本文将给大家详细介绍微信群发消息的操作方法,只…

列出目录内最大十个文件并排序

在Linux中,可以使用以下命令列出目录内最大的十个文件并排序: find ./ -type f -print0 | xargs -0 du -h | sort -rh | head -n 10 find ./ -type f -print0: find命令用于在指定目录下查找文件。这里,我们在当前目录下查找所有的文件&…

【Nginx】CentOS 安装Nignx

CentOS上安装Nginx: 1. 打开终端:使用SSH或者直接在服务器上打开终端。 2. 更新系统:运行以下命令以确保您的系统软件包列表是最新的: sudo yum update3. 安装Nginx:运行以下命令以安装Nginx: sudo yum…

应用在微波炉触摸屏中的低功耗触摸芯片

微波炉(microwave oven/microwave),顾名思义,就是一种用微波加热食品的现代化烹调灶具。微波是一种电磁波。微波炉由电源,磁控管,控制电路和烹调腔等部分组成。电源向磁控管提供大约4000伏高压,…

Nodejs操作缓存数据库-Redis

Hi I’m Shendi Nodejs专栏 Nodejs操作缓存数据库-Redis 在服务端开发中,缓存数据库也是不可或缺的,可以提高程序并发以及方便后续扩展,而目前最常用的莫过于Redis了 安装依赖 和之前的mysql一样,redis的依赖最常用的就是redis …

创意无限:7大AI绘画软件揭示人工智能的绘画魅力!

本篇文章将为大家推荐7款2023年好用的AI绘画软件,为艺术家和设计师提供了创作灵感和效率的提升。 1、即时设计 即时设计是一款依托于浏览器运行的在线设计工具,可使用它进行UI设计、原型制作,以及团队项目管理等,功能十分强大&a…

el-table本地与线上的样式不一致出现错乱

使用el-table的时候有几个表头是循环出来的,出现在本地运行的时候,表头内el-input输入框样式正常,但是发布以后出现样式错乱问题 线上样式错乱:​ 本地正常: 出现这个问题的原因是我有几个表头是循环出来的&#xff0…

问题 D: 过山车(二分图)

首先,绘制二分图 核心思想: 对于每一个左边端点,查找每个右边端点, 若右边端点无对象,则暂时作为该左端点的对象 若右边端点有对象,递归查询其对象是否有其他选择 (1.若有其他选择&#xf…

全网最全synchronized锁升级过程

一、前言 在面试题中经常会有这么一道面试题,谈一下synchronized锁升级过程? 之前背了一些,很多文章也说了,到底怎么什么条件才会触发升级,一直不太明白。 实践是检验真理的唯一标准,今天就和大家一起实…

uniapp+vite+vue3开发跨平台app,运行到安卓模拟器调试方法

因为没有使用hbuilder开发uniapp,而是使用了vscode和vite来开发的,所以怎么将这个程序运行到安卓模拟器调试开发呢?其实方法很简单,使用android studio创建一个模拟器或者其他mumu模拟器,然后将项目使用hbuilder打开&a…

空间数据结构笔记:层次包围盒树(Bounding Volume Hierarchy Based On Tree)

1 总览 层次包围盒树(BVH树)是一棵多叉树,用来存储包围盒形状。它的根节点代表一个最大的包围盒,其多个子节点则代表多个子包围盒。为了统一化层次包围盒树的形状,它只能存储同一种包围盒形状 2 AABB包围盒树&#x…

Web安全:Vulfocus 靶场搭建.(漏洞集成平台)

Web安全:Vulfocus 靶场搭建.(漏洞集成平台) Vulfocus 是一个包含了多种漏洞靶场的镜像。每个靶场都有具体的漏洞环境和攻击点。Vulfocus 的靶场包括了 Web 安全漏洞、系统安全漏洞、网络安全漏洞、密码学漏洞等多种类型。通关这个靶场我们可以…

日出日落的气象意义:探索日出日落查询API在天气预测中的应用

引言 当谈论气象意义时,日出和日落都是天文现象中的重要组成部分。它们不仅是自然界美妙的展示,更对天气预测有着深远的影响。而如今,随着科技的发展,日出日落查询API在天气预测中的应用正在变得越来越重要。 日出和日落的气象意…

Q learning

Q learning Q Learning是强化学习算法中的一个经典算法。在一个决策过程中,我们不知道完整的计算模型,所以需要我们去不停的尝试。 算法流程 整体流程如下: Q-table 初始化 第一步是创建 Q-table,作为跟踪每个状态下的每个动作…

linux 系统下文本编辑常用的命令

一、是什么 Vim是从 vi 发展出来的一个文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方 而…

苹果手机通话记录怎么恢复?这3个方法就足够!

通话记录是手机中的重要数据之一,它记录了用户与联系人的通话信息,包括通话时间、通话时长、通话号码等等。 有时候,我们可能不小心删除了通话记录,或者想找回之前的通话记录以此来回忆起一些事情。那么,苹果手机通话…

全自动内衣洗衣机什么牌子好?家用迷你洗衣机推荐

内衣洗衣机是一种专为内衣、丝绸和其他精细衣物设计的家电,它们能够温柔地清洁和保护这些特殊材质的衣物。代替了传统的手洗,能够大大节约我们不少的宝贵时间。但在市场上,有各种型号和功能的内衣洗衣机,如何挑选到一款适合自己的…

内衣洗衣机怎么选?小型洗衣机质量排名

现在大部分的家庭都拥有高质量、大品牌、大容量的洗烘套装来满足一家人的日常洗烘需要,像内衣这种贴身的衣物,需要手洗或者用专用的内衣洗衣机,这样才可以最大程度地减少细菌的交叉感染,提高我们贴身衣物的卫生,那么怎…