【Git】01-Git基础

news2024/9/28 1:17:13

文章目录

  • 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清理掉。
如果日常工作中对代码做一些尝试性编辑,并不打算保存,那么分离头指针就有了很好的用处。

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

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

相关文章

docker-compose安装Nacos2

文章目录 一. Mac1.1 数据库nacos_dev1.2 docker-compose.yaml1.3 部署1.4 卸载1.5 查看 一. Mac 1.1 数据库nacos_dev sql文件地址 /** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the "License");* yo…

Android常用的工具“小插件”——Widget机制

Widget俗称“小插件”&#xff0c;是Android系统中一个很常用的工具。比如我们可以在Launcher中添加一个音乐播放器的Widget。 在Launcher上可以添加插件&#xff0c;那么是不是说只有Launcher才具备这个功能呢&#xff1f; Android系统并没有具体规定谁才能充当“Widget容器…

一文巩固Spring MVC的Bean加载机制

目录 一、什么是Spring MVC的Bean 二、Spring MVC的Bean加载机制 三、Spring MVC如何动态装载Bean 一、什么是Spring MVC的Bean 在Spring MVC中&#xff0c;Bean指的是在Spring IoC容器中创建和管理的对象。这些对象可以是普通的Java类&#xff0c;也可以是服务层组件、数据…

微信“刷掌支付”上线!出门带手就可以了~

从2023年9月5日起&#xff0c;微信支付联合广东7-Eleven便利店正式发布了刷掌支付服务。用户可以在收银台结账时选择刷掌支付作为支付方式。这是全国首批支持微信刷掌支付的便利店&#xff0c;也是刷掌支付在广州地区的首次社会面应用。 目前&#xff0c;广东地区已经有超过150…

2023全国大学生数学建模竞赛C题思路模型代码来啦

目录 一.选题建议先发布&#xff0c;思路模型代码论文第一时间更新&#xff0c;获取见文末名片 二.选题建议&#xff0c;后续思路代码论文 C 题 蔬菜类商品的自动定价与补货决策 各题分析 获取完整思路代码见此处名片 一.选题建议先发布&#xff0c;思路模型代码论文第一时…

Redis简易入门15招

Redis简易入门15招 1、Redis简介 REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo写的key-value存储系统 。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。…

SpringBoot 整合MyBatisPlus

简介 MyBatis Plus&#xff08;也称为MyBatis&#xff09;是MyBatis框架的增强版本&#xff0c;MyBatis是一种流行的轻量级Java持久化框架。MyBatis Plus提供了额外的功能&#xff0c;并简化了对MyBatis的使用&#xff0c;使得在Java应用程序中使用数据库更加便捷。 官方文档&a…

Grpc自定义类型(含Decimal)

官方文档&#xff1a;https://learn.microsoft.com/zh-cn/dotnet/architecture/grpc-for-wcf-developers/protobuf-data-types Proto文件目前所支持的数据类型有&#xff1a; 在官方文档中有提到&#xff0c;除以上数据类型外&#xff0c;还可以引用协议来指定“已知类型”扩…

UI设计师的发展前景是否超越了平面设计?

这是一个现代经济学的典型话题&#xff1a;应该跟随趋势追逐风口&#xff0c;还是坚守成熟的“夕阳产业” UI 设计行业发展短短不过 20 多年&#xff0c;但平面设计这个“夕阳产业”最早可以追溯到上世纪的二三十年代。显而易见的答案是&#xff0c;更新兴的 UI 设计师得到的好…

PaddleX:一站式、全流程、高效率的飞桨AI套件

随着ChatGPT引领的AI破圈&#xff0c;各行各业掀起了AI落地的潮流&#xff0c;从智能客服、智能写作、智能监控&#xff0c;到智能医疗、智能家居、智能金融、智能农业&#xff0c;谁能快速将AI与传统业务相结合&#xff0c;谁就将成为企业数字化和智能化变革的优胜者。然而&am…

Mybatis的关联关系映射以及自定义resultMap三种映射关系

目录 经典面试题&#xff1a; 一&#xff0c;关联关系映射 二&#xff0c;具体步骤&#xff1a; 总结 前言&#xff1a; 今天我们来学习Mybatis的关联关系映射以及自定义resultMap三种映射关系&#xff0c;希望这篇博客可以帮助大家的学习工作&#xff01;&#xff01;&…

1998-2014年工业企业数据库和绿色专利匹配

1998-2014年工业企业数据库绿色专利匹配 1、时间&#xff1a;1998-2014年 2、样本量&#xff1a;470万 3、来源&#xff1a;工业企业数据库、国家知识产权局、WIPO 4、指标&#xff1a; 企业匹配唯一标识码、组织机构代码、企业名称、年份、法定代表人、法定代表人职务、行…

JS-17--深拷贝跟浅拷贝的区别?如何实现一个深拷贝?

1、数据类型存储 JavaScript中存在两大数据类型&#xff1a; 基本类型 引用类型 基本类型数据保存在栈内存中 引用类型数据保存到堆内存中&#xff0c;引用数据类型的变量是一个指向堆内存中实际x对象的引用&#xff0c;存在栈中 2、浅拷贝 浅拷贝指的是创建新的数据&#xff…

基于SSM的小型企业办公自动化系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

第二证券:为什么a股放开做空机制?

对于很多一般出资者来说&#xff0c;做空股票是一件十分复杂和困难的工作&#xff0c;可是对于专业的出资者和组织来说&#xff0c;这供给了一个愈加自由的商场买卖环境。那么&#xff0c;为什么A股放开做空机制呢&#xff1f;我们从多个视点来分析&#xff1a; 视点一&#x…

谷歌seo技术流

很多外贸企业和独立站都想从Google获得免费的流量&#xff0c;也就是SEO流量&#xff0c;但是在做SEO的过程中&#xff0c;总会面临这样或那样的问题。米贸搜谷歌推广将这些问题总结如下&#xff1a; 既然SEO看起来似乎很难&#xff0c;但还是有很多电商公司愿意投资SEO&#x…

Nosql数据库服务之redis

Nosql数据库服务之redis 一图详解DB的分支产品 Nosql数据库介绍 是一种非关系型数据库服务&#xff0c;它能解决常规数据库的并发能力&#xff0c;比如传统的数据库的IO与性能的瓶颈&#xff0c;同样它是关系型数据库的一个补充&#xff0c;有着比较好的高效率与高性能。 专…

CSAPP的Lab学习——Archlab(Architecture Lab)

文章目录 前言一、A部分sum .ys&#xff1a;迭代求和链表元素写一个Y86-64的程序和。rsum .递归求和链表元素copy.ys 复制将源块复制到目标块 二、B部分三、C部分实现iaddq指令 总结 前言 一个本硕双非的小菜鸡&#xff0c;备战24年秋招。刚刚看完CSAPP&#xff0c;真是一本神…

Android发布依赖到 Jitpack

前言 我们在日常开发中&#xff0c;经常会用到第三方开源的库文件&#xff0c;有的来自JCenter&#xff0c;Maven Central&#xff0c;google等。但是随着JCenter的弃用&#xff0c;现在用的最多的还是Maven Central&#xff0c;google。今天我们就自己亲自发布一个依赖。 现…

三秋农忙,自动驾驶农机保驾护航

“三秋”&#xff08;收获、播种、整地&#xff09;是一年中重要而忙碌的农事季节&#xff0c;水稻、棉花、玉米等农作物收获时期&#xff0c;也是小麦、蔬菜等秋种的好时间&#xff0c;还是各类农作物进入秋管的重要期。 随者农业科技发展&#xff0c;北斗导航农机自动驾驶系…