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

【Git】01-Git基础

文章目录

  • Git基础
    • 1. 简述
      • 1.1 版本管理演变
      • 1.2 Git的特点
    • 2. Git安装
      • 2.1 安装文档
      • 2.1 配置user信息
    • 3. 创建仓库
      • 3.1 场景
      • 3.2 暂存区和工作区
    • 4. 重命名
    • 5. 常用git log版本历史
      • 5.1 查看当前分支日志
      • 5.2 简洁查看日志
      • 5.3 查看最近指定条数的日志
    • 6. 通过图形界面工具查看版本
    • 7. 探秘.git目录
      • 7.1 .git文件目录
      • 7.2 HEAD文件
      • 7.2 config文件
      • 7.2 refs文件
      • 7.3 object文件*
    • 8. commit/tree/blob三个对象关系
      • 8.1 Git对象关系
    • 9. 分离头指针情况下的注意事项

Git基础

1. 简述

1.1 版本管理演变

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

1.2 Git的特点

  • 最优的存储能力
  • 非凡的性能
  • 开源
  • 很容易做备份
  • 支持离线操作
  • 很容易定制工作流程

2. Git安装

2.1 安装文档

参照官方文档
Git官方文档

2.1 配置user信息

配置user信息是为了在代码review或者变动产生时,进行邮件的提醒

  • 配置user.name

git config --global user.name ‘your_name’

  • 配置user.email

git config --global user.email ‘your_email@domain.com’

config的三个作用域
在这里插入图片描述

3. 创建仓库

3.1 场景

  • 把已有项目代码纳入Git管理

$ cd 项目代码所在文件夹
$ git init

  • 新建的项目直接用Git管理

$ cd 某个文件夹
$ git init your_proiect # 会在当前路径下创建和项目名称同名的文件夹
$ cd your_project

查看当前git暂存区git状态

git status

查看当前git日志

git log

git add 文件名称
git commit -m’对添加文件的描述’

3.2 暂存区和工作区

在这里插入图片描述

在工作目录上的修改的变更,Git会先添加到暂存区,暂存区的信息可以覆盖本地的工作目录,同时也可以提交到历史版本中

文件复制

cp 源文件路径 复制后新文件名称

4. 重命名

清除暂存区,工作区信息

git reset --hard

重命名

git mv 需要变更的文件名 变更后的文件名
eg: git mv readme readme.md // 将readme重命名为readme.md

5. 常用git log版本历史

5.1 查看当前分支日志

git log

在这里插入图片描述

5.2 简洁查看日志

git log – oneline

在这里插入图片描述

5.3 查看最近指定条数的日志

git log -n 1 #查看最近1条日志

在这里插入图片描述

这里可以搭配 --oneline使用
git log -n 1 --oneline

在这里插入图片描述
查看本地分支

git branch -v

创建分支

git checkout -b <branch_name> #创建一个新的分支并切换到该分支
这个命令相当于以下两个命令的组合
git branch <branch_name> # 创建一个新分支
git checkout <branch_name> # 切换到新分支
当运行git checkout -b <branch_name>时,Git会在当前提交的基础上创建一个新的分支,并将HEAD指向该分支

查看所有分支的日志

git log --all
会显示所有分支的提交历史。这包括本地分支和远程分支。

git log --all --graph #图形化显示演进历史

6. 通过图形界面工具查看版本

gitk #弹出并显示图形界面

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

7. 探秘.git目录

7.1 .git文件目录

在这里插入图片描述

7.2 HEAD文件

通过 cat HEAD命令打开HEAD文件显示信息如下:

在这里插入图片描述

HEAD是一个文本文件,内容这是一个引用,当分支发生切换时,HEAD的内容会发生变化

7.2 config文件

通过 cat config查看文件信息如下
在这里插入图片描述

这里会记录和本地仓库相关的配置信息

7.2 refs文件

通过 cd refs切换值refs文件夹,查看里面内容为:
在这里插入图片描述

refs中存在tags和heads,意味着git仓库可以有很多tag标签(里程碑)和多个分支(heads)
heads中记录所有的分支信息

heads中内容记录了分支的信息,查看单个分支文件内容发现,其中记录的是分支的指针指向哪个commit

查看文件类型

git cat-file -t 文件名

查看文件内容

git cat-file -p 文件名

7.3 object文件*

object中存放的是多个文件夹和pack(松散文件的打包体),info信息
进入到其中任一普通文件夹,文件中记录的是一个hash值,将文件将的名称+hash拼接在一起,通过类型查看命令可以发现,其类型为tree。

查看tree文件信息,发现内部有blob对象

8. commit/tree/blob三个对象关系

8.1 Git对象关系

在这里插入图片描述

一个commit只对应一个tree,这个tree中存放的是当前commit对应的视图,这个视图存放了快照集合,这个集合是存放了当前commit对应的本项目仓库的所有文件和文件夹的快照

tree中还可以包含tree和bolb,类似于文件夹中包含文件夹和文件

git中如果文件内容相同,那么他们所对应的blob是相同的

9. 分离头指针情况下的注意事项

分离头指针指的是当前正工作在没有分支的状态下,编写的文件依然可以commit,但是并不会挂在任何一个分支下,如果这时候再切换分支,那么在分离头指针状态下的提交代码很可能会被当成垃圾被Git清理掉。
如果日常工作中对代码做一些尝试性编辑,并不打算保存,那么分离头指针就有了很好的用处。

相关文章:

【Git】01-Git基础

文章目录 Git基础1. 简述1.1 版本管理演变1.2 Git的特点 2. Git安装2.1 安装文档2.1 配置user信息 3. 创建仓库3.1 场景3.2 暂存区和工作区 4. 重命名5. 常用git log版本历史5.1 查看当前分支日志5.2 简洁查看日志5.3 查看最近指定条数的日志 6. 通过图形界面工具查看版本7. 探…...

【Vue2.0源码学习】生命周期篇-初始化阶段(initState)

文章目录 1. 前言2. initState函数分析3. 初始化props3.1 规范化数据3.2 initProps函数分析3.3 validateProp函数分析3.4 getPropDefaultValue函数分析3.5 assertProp函数分析 4. 初始化methods5. 初始化data6. 初始化computed6.1 回顾用法6.2 initComputed函数分析6.3 defineC…...

专升本英语零基础学习

1. 词法 1.1 名词 名词&#xff08;n.)&#xff0c;是词类的一种&#xff0c;属于实词。他表示人&#xff0c;物&#xff0c;事&#xff0c;地点或抽象概念的统一名称。 1.1 名词的含义 名词&#xff08;n.)&#xff0c;是词类的一种&#xff0c;属于实词。他表示人&#x…...

QUIC协议连接详解(二)

目录 一&#xff1a;RTT解释 二&#xff1a;QUIC 1-RTT连接 三&#xff1a;QUIC 0-RTT连接 一&#xff1a;RTT解释 在介绍QUIC协议的连接之前先科普一下什么是RTT。RTT是Round-Trip Time的英文缩写&#xff0c;翻译过来就是一趟来回的时间即往返时延。时间计算即从发送方发送…...

JAVA 经常遇到一些问题【第二部分36~51】

重拾者&#xff1a; 每日记录至目前&#xff08;记录51种不同场景的问题可参考解决方案&#xff09; 异常就两部分&#xff1a; 1、excepiton信息&#xff1a; 报错产生的原因 2、at开头表示&#xff1a; 异常产生的代码位置。 欢迎关注本人微信公众号&#xff1a;AIM…...

蓝桥杯打卡Day6

文章目录 N的阶乘基本算术整数查询 一、N的阶乘OI链接 本题思路&#xff1a;本题是关于高精度的模板题。 #pragma GCC optimize(3) #include <bits/stdc.h>constexpr int N1010;std::vector<int> a; std::vector<int> f[N];std::vector<int> mul(in…...

spark集群问题汇总

一、 磁盘问题 问题描述可能原因解决措施core节点磁盘不足, 并且持续增加未开启spark-history的日志清理打开日志清理: spark.history.fs.cleaner.enabled task节点磁盘不足 APP应用使用磁盘过大: 1. 严重的数据倾斜 2. 应用本身数据量大 1. 解决数据倾斜 2. 加大资源, 增加e…...

WebServer 解析HTTP 请求报文

一、TCP 状态转换 浏览器访问网址&#xff0c;TCP传输全过程 二、TCP协议的通信过程 三、TCP 通信流程 // TCP 通信的流程 // 服务器端 &#xff08;被动接受连接的角色&#xff09; 1. 创建一个用于监听的套接字- 监听&#xff1a;监听有客户端的连接- 套接字&#xff1a;这…...

Golang开发--interface的使用

在Go语言中&#xff0c;接口&#xff08;interface&#xff09;是一种特殊的类型&#xff0c;它定义了一组方法的集合。接口为实现多态性提供了一种机制&#xff0c;允许不同的数据类型实现相同的方法&#xff0c;从而可以以统一的方式处理这些不同类型的对象。接口在Go中广泛用…...

2023 年高教社杯全国大学生数学建模竞赛题目 B 题 多波束测线问题

B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀速直线传播&#xff0c;在不同界面上产生反射&#xff0c;利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信号&#xff0c;并记录从声波发射到信号接收的传播…...

leetcode算法题--生成特殊数字的最少操作

原题链接&#xff1a;https://leetcode.cn/problems/minimum-operations-to-make-a-special-number/description/ 感觉还是比较难想到的。。 func minimumOperations(num string) int {res : len(num)if strings.Contains(num, "0") {res-- }f : func(tail string)…...

数学建模--决策树的预测模型的Python实现

目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 """ 决策树的应用:对泰坦尼克号数据集成员进行预测生死 算法流程还是比较简单的,简单学习一下决策树跟着注释写即可 文章参考:https://zhuanlan.zhihu.com/p/133838427 算法种遇上sklear…...

Linkstech多核并行仿真丨光伏发电系统模型及IEEE 39 bus模型多核并行实测

新能源场站和区域电网作为复杂且具有动态特性的大规模电力系统&#xff0c;需要实时仿真测试来验证其性能、稳定性和响应能力。在这种背景下&#xff0c;多核并行仿真运算显得尤为重要。多核并行仿真能够同时处理电力系统的复杂模型&#xff0c;加速仿真过程&#xff0c;实现接…...

在STS里使用Gradle编译Apache POI5.0.0

1、到官方下面地址下载Gradle最新的版本 Gradle Distributions 2、解压后拷贝到D盘下D:\gradle-8.3-rc-4里 3、配置环境变量 新建系统变量 GRADLE_HOME &#xff0c;值为 路径 4、在 Path 中添加上面目录的 bin 文件路径 &#xff08;可以用 %GRADLE_HOME%\bin&#xff0c…...

golang - 使用有缓冲通道控制并发数

在 Go 语言中&#xff0c;使用带缓冲的通道&#xff08;buffered channels&#xff09;可以有效地控制并发数。带缓冲的通道可以让你限制同时运行的 goroutine 数量&#xff0c;从而避免过度并发导致的资源耗尽问题。以下是一个使用带缓冲通道控制并发数的示例&#xff1a; pa…...

AUTOSAR测试指标

测试方法 1、测试相关时间2、检查各个状态下ECU的情况3、程序编写 1、测试相关时间 序号时间参数描述测试方法时间1T_Wakeup从睡眠模式到网络模式&#xff0c;(上位机)发送NM报文的时间唤醒源的时间100ms2T_START_NM从睡眠模式到网络模式&#xff0c;DUT发送的第一帧NM报文捕获…...

Vue 前端项目使用alibaba矢量库svg图标

Vue 前端项目使用alibaba矢量库svg图标 这里主要是记录 vue项目中使用阿里矢量库图标的操作流程&#xff0c;方便以后查阅&#xff01;&#xff01;&#xff01; 一、简介 iconfont 是由阿里巴巴体验团队打造的&#xff0c;一款设计和前端开发的便捷工具.拥有着很强大且图标内…...

蓝桥杯官网填空题(距离和)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 两个字母之间的距离定义为它们在字母表中位置的距离。例如 A 和 C 的距离为 2&#xff0c;L 和 Q 的距离为 5。 对于一个字符串&#xff0c;我们称字符串中两两字符…...

【座位调整】Python 实现-附ChatGPT解析

疫情期间课堂的座位进行了特殊的调整,不能出现两个同学紧挨着,必须隔至少一个空位,给你一个整数数组desk,表示当前座位的占座情况,由若于0和1组成,其中 0 表示没有占位,1表示占位。在不改变原有座位秩序情况下,还能安排坐几个人? 输入描述: 第一行是一个数组,表示作为…...

前端面试基础面试题——5

1.react 和 vue 的区别是什么&#xff1f; 2.虚拟DOM的原理&#xff1f;优点与缺点&#xff1f; 3.类组件和函数组件之间的区别是&#xff1f; 4.state 和 props 区别是什么&#xff1f; 5.React 中 refs 是做什么的&#xff1f; 6.什么是高阶组件&#xff1f; 7.讲讲什么…...

Java高并发系列: 使用wait - notify实现高效异步方法

1. 背景 在项目开发中, 通常会有异步执行操作, 例如: 提交一个异步清空一系列数据库中ID ${_id} 的记录, 这个时候通常的做法是主线程将任务添加到一个异步队列中, 后台维护一个线程不断地循环扫描这个队列, 如果有需要执行的任务, 则执行相应的逻辑. 如下图所示: 2. 一个简…...

业务安全详解

文章目录 一、 业务安全概述1.1 业务安全现状1.1.1 业务逻辑漏洞1.1.2 黑客攻击的目标 二、 业务安全测试2.1 业务安全测试流程2.1.1 测试准备2.1.2 业务调研2.1.3 业务建模2.1.4 业务流程梳理2.1.5 业务风险点识别2.1.6 开展测试2.1.7 撰写报告 三、 业务安全经典场景3.1 业务…...

算法笔记--最大连续1的个数Ⅲ

leetcode题目链接:1004. 最大连续1的个数 III 题目描述 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 思路 这里可以转换思路&#xff0c;让题意更加明确:即&#xff0c;求一个最大连续区间…...

Linux CentOS7 添加中文输入法

在安装CentOS7时&#xff0c;现在默认安装了桌面中文系统。可以切换为英文&#xff0c;中英文可以按要求随时更换。而在CentOS7桌面环境下&#xff0c;显示中文非常方便、正确&#xff0c;但不能录入中文。 在远程登录系统的情况下&#xff0c;不论是系统语言&#xff08;LANG…...

Python接口自动化封装导出excel方法和读写excel数据

一、首先需要思考&#xff0c;我们在页面导出excel&#xff0c;用python导出如何写入文件的 封装前需要确认python导出excel接口返回的是一个什么样的数据类型 如下&#xff1a;我们先看下不对返回结果做处理&#xff0c;直接接收数据类型是一个对象&#xff0c;无法获取返回值…...

React三属性之:refs

作用 refs是为了获取节点,使用场景主要在需要操作dom的时候,比如echarts,就需要真实的dom节点 使用 import React from "react"; class RefsTest extends React.Component{state {value:输入框的值}refPlan React.createRef()logRef ()>{console.log(this.r…...

将Vue项目迁移到微信小程序中

文章目录 一、创建一个Vue.js的应用程序二、构建微信小程序1. 安装微信小程序构建工具2. 在vuejs项目的根目录中创建一个wepy.confgjs文件3. 在vuejs项目的根目录中运行构建 三、错误记录1. 找不到编译器&#xff1a;wepy-compiler-sass 一、创建一个Vue.js的应用程序 使用 Vu…...

php权限调整强制用户退出的解决方案

要强制用户重新登录&#xff0c;你可以采取以下步骤&#xff1a; 当用户登录时&#xff0c;将用户的登录状态和其他相关信息存储在服务器端。例如&#xff0c;你可以将用户ID、用户名或其他标识符存储在服务器的会话&#xff08;session&#xff09;中。当管理员修改用户的某些…...

[uniapp]踩坑日记 unexpected character > 1或‘=’>1 报错

在红色报错文档里下滑&#xff0c;找到Show more 根据提示看是缺少标签&#xff0c;如果不是缺少标签&#xff0c;看看view标签内容是否含有<、>、>、<号,把以上符合都进行以<号为例做{{“<”}}处理...

面试求职-经典面试问题

16个经典面试问题回答思路 面试过程中&#xff0c;面试官会向应聘者发问&#xff0c;而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言&#xff0c;了解这些问题背后的“猫腻”至关重要。本文对面试中经常出现的一些典型问题进行了整理&#xff0c;并给出相…...

网站建设的相关职位/深圳创新创业大赛

我有位实业朋友特别推崇小米&#xff0c;因为小米崛起很快&#xff0c;销售额很大&#xff0c;估值很高、风投竞相涌入&#xff0c;小米既做研发又做制造又做电商也很成功、品牌塑造也很成功&#xff08;有拥趸粉丝&#xff09;&#xff0c;而且小米做的是很重的&#xff08;手…...

net开发网站/常州网络推广seo

柔性有机太阳能电池(OSCs)由于具有成本低、重量轻、易于制造、耐磨性好、便携性好等优点&#xff0c;已经成为研究的热点。透明电极的制作被认为是决定光电转换效率(PCE)和制造成本的核心。随着最近效率超过17%的突破性进展&#xff0c;使OSCs重新受到人们的关注&#xff0c;同…...

优网营销网站建设/长安seo排名优化培训

Backup Exec Linux平台下Oracle RAC备份详细配置步骤。文章:TECH117244 | 创建日期: 2009-01-03 | 更新日期: 2009-01-01 | 文章 URL http://www.symantec.com/docs/TECH117244文章类型Technical Solution语言显示全部Problem如何配置Backup Exec对Linux平台下的Oracle RAC进行…...

做网站都要用到框架吗/微信管理软件

本文系投稿&#xff0c;作者&#xff1a;主题曲。今年2月份&#xff0c;全国“扫黄打非”办公室曾召集百度、阿里巴巴、腾讯、新浪网、微博、今日头条、金山、奇虎、YY直播、映客直播、快手等16家互联网公司有关负责人&#xff0c;强调各互联网企业要健全内容审核、有害信息拦截…...

网站通栏是什么/网站开发北京公司

主要分为三个步骤 应用程序处理(简而言之就shader编码中可以处理的一切信息都属与应用程序处理阶段)>几何顶点处理(主要工作坐标的顶点变换)>光栅化处理(与像素处理相关操作) 关于渲染管线 原文链接 http://game.ceeger.com/forum/read.php?tid10970&fid2 正文所谓…...

做医疗网站建设/网络营销推广要求

init()方法中返回的this指向init的实例对象&#xff0c;而init.prototype等于jQuery.prototype&#xff0c;所以也是jQuery的实例对象&#xff1b; 返回this是为了实现链式调用...