git企业开发的相关理论(一)

news/2024/12/18 9:45:44/

目录

一.初识git

二.git的安装

三.初始化/创建本地仓库

四.配置用户设置/配置本地仓库

五.认识工作区、暂存区、版本库

六.添加文件__场景一

七.查看 .git 文件/添加到本地仓库后.git中发生的变化

1.执行git add后的变化

index文件(暂存区)

logs/HEAD文件

2.执行git commit后的变化

refs/heads/master

Objects目录

logs/HEAD文件


一.初识git

类似于qq在线文档,office里查看历史版本,Git 是一个分布式版本控制系统,用于追踪代码的变化,协作开发,并能轻松管理不同版本的代码。能像qq在线文档一样,大型多人在线编辑,office里的历史版本,可以随时回滚,对于文本文件能直接告诉你哪里发生了改动,二进制文件如图片告诉你大概的变化。

二.git的安装

1.Windows(x64): Git-2.47.1-64-bit.exe

2.Ubuntu: apt-get install git

3.macOs:  brew install git

三.初始化/创建本地仓库

git init

创建这个词便于理解,初始化才是本质。我们知道我们想要将什么放进我们的github/gitee,但计算机其实不知道,初始化其实就相当于圈了一块地,告诉计算机,将这些推送到github/gitee

同时会生成一个.git的隐藏文件,也就是真正的本地仓库,版本库,注意尤其不允许在.git下手动修改,否则可能导致该仓库用不了

四.配置用户设置/配置本地仓库

一般配置为

git config --global user.name "xxx"
git config --global email "666666@xxxx.com"

检查其是否配置成功,只需

git config -l//    若出现下列代码,则表示配置成功
//    user.name=xxx
//    user.email=666666@xxx.com

我们的配置一般为全局配置,全局配置是指本地的所有仓库默认都采取这种用户配置,如果不采取全局配置,只需要去掉--global

git config user.name "xxx"
git config email "666666@xxxx.com"

最后,如果我们换一种配置,直接输,系统会直接覆盖,若们就是想取消所有配置,则输入以下代码,注意全局配置和局部配置不一样,有没有取消成功,再git config -l查看即可。

//    全局设置
git config --global --unset user.name
git config --global --unset user.email//    局部配置
git config --unset user.name
git config --unset user.email

五.认识工作区、暂存区、版本库

如图所示,这是在window系统中工作区,暂存区,版本库的大致分布及一些原理。

当我们git init一个仓库时,在里面添加文件,git是不能直接管理的,因为他处于工作区中。我们需要用git add .命令将其推送到.git文件所在的版本库中,实际上是stage暂存区(索引)中。这时仍然没有添加到本地仓库中,需要使用git commit -m ‘xxx’命令将其推向HEAD指向的master中,这样就算完成了。

无论是stage暂存区还是master中,存放的都是索引,具体的文件管理是在objects文件中,修改的工作内容会写入对象的一个新的git对象中

六.添加文件__场景一

//    将文件从工作区添加到暂存区,有两种办法
git add .    // 会将所有修改的文件添加到暂存区
git add <file>    // 只会将file文件添加到暂存区,可同时添加多个//    将问件从暂存区推向master
git commit -m ‘xxxx’    //xxxx最好填写其主要变化内容,方便后续管理  //    检查推送状态
git status//    查看推送日志
git log// 显示如下信息// commit 1f458c82d3760f5db667167b742c5972e7904a97 (HEAD -> master)// Author: user.name <user.email>// Date:   Mon Dec 16 22:12:31 2024 +0800// <file>
//如果认为太长,也可以一行输出
git log --pretty=oneline// 显示如下信息// 1f458c82d3760f5db667167b742c5972e7904a97 (HEAD -> master) <file>

其中commit ID是根据哈希值整出来的独一无二的,我们是通过这个进行版本的控制,每一次add操作都会想我们展示一些变化的细节,如推送了什么文件,文本文件,增加了多少行,减少了多少行之类的。

我们对单独提交文件还需注意如下几点

git add file1

git add file2

git commit -m 'text'

这样只会将file2推送到本地仓库file1不会,因为暂存区,毕竟是暂存区

此时要么add一次,commit一次

要么git add file1 file2,再commit

要么直接git add . ,然后再commit

七.查看 .git 文件/添加到本地仓库后.git中发生的变化

1.执行git add后的变化

index文件(暂存区)

记录当前暂存区的所有文件信息(包括文件的路径、修改状态和哈希值)。注意index 文件是二进制格式,你通常不能直接查看其内容。

logs/HEAD文件

logs/HEAD会记录你最近的操作,尤其是指针的变化。例如,git add 后,你可以看到这个文件记录了 HEAD(当前分支)的操作记录。当前将HEAD用记事本打开,则是以下内容

// master文件所在路径
ref: refs/heads/master

2.执行git commit后的变化

refs/heads/master

将master用记事本打开,可以清楚地看到,master中记录的是git commit后最新的哈希值

Objects目录

通过哈希值查看内容不再能使用记事本,需要用到下列命令

git cat-file -p <哈希值>

我们可以看到通过master中的哈希值,我们能得到tree(提交的整个树的节点),parent(上一个节点),和提交者的信息。通过再次检索tree,我们能得到其根目录,然后检索我们README.txt文件的哈希值,我们就能看到我们操作的具体变化。 

因此,修改的工作区内容会写入到对象库的一个新的git对象中。

logs/HEAD文件

logs/HEAD记录了你最新的提交操作。例如,在执行git commit后,logs/HEAD会记录这一操作的详细信息,包含提交的哈希值、提交人、日期等信息。


http://www.ppmy.cn/news/1556091.html

相关文章

云计算HCIP-OpenStack04

书接上回&#xff1a; 云计算HCIP-OpenStack03-CSDN博客 12.Nova计算管理 Nova作为OpenStack的核心服务&#xff0c;最重要的功能就是提供对于计算资源的管理。 计算资源的管理就包含了已封装的资源和未封装的资源。已封装的资源就包含了虚拟机、容器。未封装的资源就是物理机提…

node(2) - npm run 原理

1. npm run 执行原理 npm run 命令的原理是执行 package.json 文件中定义的脚本。当你在命令行中运行 npm run 时,npm 会查找 package.json 文件中的 scripts 字段,然后执行对应的脚本命令。 2. 示例 2.1 以 dev:weapp 为例 运行 npm run dev:weapp 命令;npm 会查找 packa…

SAP RESTful架构和OData协议

一、RESTful架构 RESTful 架构&#xff08;Representational State Transfer&#xff09;是一种软件架构风格&#xff0c;专门用于构建基于网络的分布式系统&#xff0c;尤其是在 Web 服务中。它通过利用 HTTP 协议和一组简单的操作&#xff08;如 GET、POST、PUT、DELETE&…

IP6822为智能手机提供无线充电方案的无线充电发射微控制SOC芯片

在无线充电技术日新月异的今天&#xff0c;一款能够引领潮流、满足多元化需求的芯片显得尤为重要。英集芯IP6822是一款专为智能手机、智能手表、无线耳机提供无线充电方案的无线充电发射微控制SOC芯片&#xff0c;集成了多种关键无线充电技术&#xff0c;包括H桥驱动模块、ASK通…

汽车故障码B100016解析及消除方法

汽车故障码B100016解析 1. 故障码含义 汽车故障码B100016通常与汽车电池系统或发动机相关的问题有关。具体而言,该故障码指示了电池电压过低、电池电流异常或发动机火花塞出现问题。 2. 可能原因 电池电压过低:电池老化或电池充电不足,导致电压低于正常范围。电池电流异常…

「数据结构详解·十五」树状数组

「数据结构详解一」树的初步「数据结构详解二」二叉树的初步「数据结构详解三」栈「数据结构详解四」队列「数据结构详解五」链表「数据结构详解六」哈希表「数据结构详解七」并查集的初步「数据结构详解八」带权并查集 & 扩展域并查集「数据结构详解九」图的初步「数据结构…

iframe webview打开外链内嵌video标签导致视频无法全屏展示

iframe webview打开外链内嵌video标签导致视频无法全屏展示 解决方法iframe 添加属性webview 添加属性 解决方法 iframe 添加属性 <iframe style"width: 100%;height: 100vh;" src"http://xxx.xxx........" allowfullscreen"true" w…

设计模式12:抽象工厂模式

系列总链接&#xff1a;《大话设计模式》学习记录_net 大话设计-CSDN博客 参考&#xff1a; C设计模式&#xff1a;抽象工厂模式&#xff08;风格切换案例&#xff09;_c 抽象工厂-CSDN博客 1.概念 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是软件设计…