当前位置: 首页 > article >正文

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

目录

一.初识git

二.git的安装

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

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

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

六.添加文件__场景一

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

1.执行git add后的变化

index文件(暂存区)

logs/HEAD文件

2.执行git commit后的变化

refs/heads/master

Objects目录

logs/HEAD文件

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


一.初识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会记录这一操作的详细信息,包含提交的哈希值、提交人、日期等信息。

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


http://www.kler.cn/a/445347.html

相关文章:

  • 前端小白学习之路-Vben探索 vite 配置 - 1/50
  • 我的性能优化经验
  • 【HarmonyOS NEXT】Web 组件的基础用法以及 H5 侧与原生侧的双向数据通讯
  • PC寄存器(Program Counter Register) jvm
  • hive注释comment中文乱码解决
  • Kubernetes(K8s)学习笔记
  • 深入解析MySQL Explain关键字:字段意义及调优策略
  • EasyExcel 导出文件
  • html中实用标签dl dt dd(有些小众的标签 但是很好用)
  • Expected end or semicolon (after name and no valid version specifier)
  • 非结构化数据分析与应用(Unstructured data analysis and applications)(pt3)图像数据分析1
  • NVR管理平台EasyNVR接入的安防监控摄像机如何计算音频码流?
  • 【python算法题目】统计一个文本中所有大写字母出现的次数
  • MySQL JOIN算法实现和选择
  • Go web 开发框架 Iris
  • 行政管理痛点解决方案:OA系统助力企业提效减负
  • MSOX4154G 混合信号示波器
  • wepack如何进行性能优化
  • Docker镜像启动
  • vue下拉加载页面切换回到当前滚动位置
  • 【Linux进程】进程间的通信
  • Dependency Check命令行方式扫描jar包的安全漏洞
  • VMWare 的克隆操作
  • NOTEBOOK_11 汽车电子设备分享(工作经验)
  • 解决小程序中ios可以正常滚动,而Android失效问题
  • pytorch repeat方法和expand方法的区别