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

Git―基本操作

Git

  • ⛅认识 Git
  • ⛅安装 Git
    • Centos(7.6)
    • Ubuntu
  • ⛅Git―基本操作
    • 创建本地仓库🍂
    • 配置本地仓库🍂
    • 工作区, 暂存区, 版本库🍂
      • 版本库
      • 工作区
    • 添加文件🍂
    • 查看文件🍂
    • 修改文件🍂
    • 版本回退🍂
      • ☃️案例
    • 撤销修改🍂
      • ☃️案例
    • 删除文件🍂

⛅认识 Git


想象如下场景, 一位画师收到了一份邀约画作的任务

这位画师便开始着手作画, 不久后产出作品(version1)

客户收到之后看了看对画师说, 画的很不错, 就是能不能再加些五颜六色的黑?

画师想, 您是甲方, 您说了算. 于是在原来的基础上产出作品(version2)

客户收到之后看了看对画师说, 画的很不错, 就是还缺那么一丝丝忧伤的感觉

画师想, 您是甲方, 您说了算. 于是在原来的基础上产出作品(version3)

客户收到之后看了看对画师说, 画的很不错, 但我还是喜欢你第一版的作品

画师想, 得亏我会用 Git, 于是画师顺利的拿到了第一版的作品并交付给客户

根据上面的描述, 我们大致对 Git 有所了解🍂

  1. Git 是一个版本控制器, 能够记录每次的修改及版本的迭代
    譬如当客户问画师, 你第二版作品做出了什么修改的时候, 画师就可以利用 Git 查看做出了哪些修改
  2. Git 可以控制电脑中的所有格式文档

⛅安装 Git

Centos(7.6)

# 安装 Git 命令
sudo yum install git -y
# 查看 Git 版本
git --version

Ubuntu

# 安装 Git 命令
sudo apt-get install git -y
# 查看 Git 版本
git --version

⛅Git―基本操作

创建本地仓库🍂

# 创建 Git 目录
mkdir gitcode
# 进入创建的 Git 目录
cd gitcode/
# 创建本地仓库
git init
# 查看仓库树形结构
tree .git/

有些小伙伴查看仓库树形结构会弹出 -bash: tree: command not found, 表明所在的系统中没有安装 tree 命令

安装 tree 命令sudo yum install tree

配置本地仓库🍂

配置 name 和 email 避免后续向本地仓库提交内容时出错

# 配置当前仓库下的 name
git config user.name "在这里输入 name"
# 配置当前仓库下的 email
git config user.email "在这里输入 email"
# 查看配置是否成功
git config -l
# 删除配置的 name
git config --unset user.name
# 删除配置的 email
git config --unset user.email
# 配置所有仓库下的 name
git config --global user.name "在这里输入 name"
# 配置所有仓库下的 email
git config --global user.email "在这里输入 email"
# 删除所有仓库下的 name
git config --global --unset user.name
# 删除所有仓库下的 email
git config --global --unset user.email

注意

通过 git config --global 配置的属性无法通过 git config --unset 进行删除
但可以通过 git config --global --unset 进行删除

工作区, 暂存区, 版本库🍂

版本库


在这里插入图片描述

图中的.git目录就是版本库

不允许对.git目录进行任何的修改

在这里插入图片描述

工作区


在这里插入图片描述
.git是版本库, 与.git处于同一目录下的被称为工作区

图中的ReadMe就处于工作区


在这里插入图片描述

  • stage, 又称为暂存区或者索引(index). 暂存区存放的不是一个个 git 对象, 而是 git 对象的索引
  • add, 将工作区中所有修改的内容添加至版本库的暂存区中
    • 修改包括: (1) 添加 (2) 修改 (3) 删除
  • commit, 将暂存区中的内容提交至 master 分支下. master 分支存放的也是 git 对象的索引

在这里插入图片描述

除去上述内容外, 还存在对象库(Objects), 从而到达对版本的控制
修改的工作区内容会写入到对象库的一个新的 git 对象中
(对比暂存区 → 存放的是 git 对象的索引)

添加文件🍂

# 添加指定文件至暂存区
git add 指定的文件
# 添加当前目录下所有文件至暂存区
git add .
# 提交暂存区的全部文件到本地仓库
git commit -m "提交文件的描述信息"
# 提交暂存区的指定文件到本地仓库
git commit file1 file2 -m "提交文件的描述信息"
# 查看提交记录
git log
# 查看提交记录(简洁版)
git log --pretty=online

查看文件🍂

# 查看 .git 文件内容
git cat-file -p commitId

commitId 可以在 Objects 中查看

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

paraent, 表示上一次的commitId

修改文件🍂

# 查看从上一次提交到现在是否对文件进行过修改
git status
# 查看指定文件的暂存区与工作区的差异
git diff "filename"
# 查看指定文件的版本库与工作区的差异
git diff HEAD -- "filename"

版本回退🍂

# 版本回退
git reset [--soft | --mixed | --hard] [HEAD]
# 查看 git 历史操作 → 用于查找对应的 commitId
git reflog

回退的本质 → 将版本库的内容进行回退

  • --mixed, 默认选项, 使用时可以不带该参数. 将暂存区的内容回退到指定版本
  • --soft, 将版本库的内容回退到指定版本
  • --hard, 将暂存区, 工作区的内容回退到指定版本
  • HEAD
    • 可写成commitId, 表示指定回退的版本
    • HEAD, 表示当前版本
    • HEAD^, 表示上一个版本
    • HEAD^^, 表示上上一个版本
    • 以此类推…

    • 也可以使用~数字表示
      • HEAD~0, 表示当前版本
      • HEAD~1, 表示上一个版本
      • HEAD~2, 表示上上一个版本
      • 以此类推…

☃️案例

  • ReadMe 文件
    • version1.0 提交的内容 → git1
    • version2.0 追加提交的内容 → git2
    • 此时 ReadMe 文件的内容为 git1, git2

现在将 ReadMe 文件的内容进行回退

工作区暂存区版本库参数
git1 git2git1 git2git1 git2
git1 git2git1 git2git1--soft
git1 git2git1git1--mixed
git1git1git1--hard

撤销修改🍂

  • 对于撤销修改, 通常存在3种情况
    • 工作区的代码还没有 add → 情况1
    • 暂存区的代码还没有 commit → 请款2
    • 已经 add & commit → 情况3

对于情况3, 想要撤销修改的前提是没有执行 push 操作到远程仓库

☃️案例

  • ReadMe 文件
    • version1.0 提交的内容 → git1
    • version2.0 追加提交的内容 → git2
    • 此时 ReadMe 文件的内容为 git1, git2
工作区暂存区版本库情况解决方式
git1 git2git1git1情况1git checkout -- "filename"
git1 git2git1 git2git1情况21. git reset HEAD 2. git checkout -- ReadMe
git1 git2git1 git2git1 git2情况3git reset --hard HEAD^

删除文件🍂

# 删除工作区的文件 & add 对应的文件
git rm "filename"
# commit
git commit "filename" -m "提交文件的描述信息"

在这里插入图片描述

相关文章:

Git―基本操作

Git ⛅认识 Git⛅安装 GitCentos(7.6)Ubuntu ⛅Git―基本操作创建本地仓库🍂配置本地仓库🍂工作区, 暂存区, 版本库🍂版本库工作区 添加文件🍂查看文件🍂修改文件🍂版本回退🍂☃️案例 撤销修改…...

【PostgreSQL内核学习(二十六) —— (共享数据缓冲区)】

共享数据缓冲区 概述共享数据缓冲区管理共享缓冲区管理的核心功能包括: 共享数据缓冲区的组织结构初始化共享缓冲池BufferDesc 结构体InitBufferPool 函数 如何确定请求的数据页面是否在缓冲区中?BufferTag 结构体RelFileNode 结构体ForkNumber 结构体Re…...

word调整论文格式的记录

页眉的分章显示内容 效果: 步骤: 确保“显示/隐藏的标记”符号打开点亮 前提是章节前面有“分节符(下一页)”,没有则添加,在菜单栏“布局”——》“下一页” 添加页眉,双击页眉,选…...

android.MediaMuxer时间裁剪

使用MediaMuxer裁剪视频_安卓muxer 裁剪视频画布-CSDN博客 关键步骤 mediaExtractor.seekTo(beginTime, MediaExtractor.SEEK_TO_PREVIOUS_SYNC);long presentTimeUs mediaExtractor.getSampleTime(); if (presentTimeUs > endTime)break; 功能代码 VideoView videoVie…...

【蓝桥杯选拔赛真题91】Scratch筛选数据 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch筛选数据 一、题目要求 编程实现 二、案例分析 1、角色分析...

英语学习——16组英语常用短语

第1组:look look at 看 look for 寻找 look up 查阅,向上看 look out 向外看,小心 look after 照顾 look like 看起来像 look through 浏览 look into 向里看 look around 环顾四周 look forward to 期盼 look ahead 向前看 Look…...

unity 增加系统时间显示、FPS帧率、ms延迟

代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;using UnityEngine;public class Frame : MonoBehaviour {// 记录帧数private int _frame;// 上一次计算帧率的时间private float _lastTime;// 平…...

【Python基础】文件详解(文件基础、csv文件、时间处理、目录处理、excel文件、jsonpicke、ini配置文件)

文章目录 (一)文件详解1 快速入门文件操作1.1 快速实现文件读取1.2 快速实现文件写入 2 文件打开方式详解2.1 open方法2.2 打开方式2.3 文件读写操作2.3.1 基本读写2.3.2 读写方式打开2.3.3 实现重复读取 3 文件编码问题4 文件读写方法4.1 文件读取方式4…...

[UI5 常用控件] 05.FlexBox, VBox,HBox,HorizontalLayout,VerticalLayout

文章目录 前言1. FlexBox布局控件1.1 alignItems 对齐模式1.2 justifyContent 对齐模式1.3 Direction1.4 Sort1.5 Render Type1.6 嵌套使用1.7 组件等高显示 2. HBox,VBox3. HorizontalLayout,VerticalLayout 前言 本章节记录常用控件FlexBox,VBox,HBox,Horizontal…...

Unity类银河恶魔城学习记录1-14 AttackDirection源代码 P41

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili PlayerPrimaryAttackState.cs using System.Collections; using System.Co…...

DataX详解和架构介绍

系列文章目录 一、 DataX详解和架构介绍 二、 DataX源码分析 JobContainer 三、DataX源码分析 TaskGroupContainer 四、DataX源码分析 TaskExecutor 五、DataX源码分析 reader 六、DataX源码分析 writer 七、DataX源码分析 Channel 文章目录 系列文章目录DataX是什么&#xff…...

02.05

1.单链表 main #include "1list_head.h" int main(int argc, const char *argv[]) { //创建链表之前链表为空Linklist headNULL;int n;datatype element;printf("please enter n:");scanf("%d",&n);for(int i0;i<n;i){printf("ple…...

【C语言】贪吃蛇 详解

该项目需要的技术要点 C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32API等。 由于篇幅限制 和 使知识模块化&#xff0c; 若想了解 使用到的 Win32API 的知识&#xff1a;请点击跳转&#xff1a;【Win32API】贪吃蛇会使用到的 Win32API 目录 1. 贪吃蛇游…...

Mysql MGR搭建

一、架构说明 1.1 架构概述 MGR(单主)VIP架构是一种分布式数据库架构&#xff0c;其中数据库系统采用单主复制模式&#xff0c; 同时引入虚拟IP(VIP)来提高可用性和可扩展性。 这种架构结合了传统主从复制和虚拟IP技术的优势&#xff0c;为数据库系统提供了高可用、 高性能和…...

新火种AI|寒武纪跌落神坛!七年连亏50亿,AI芯片第一股不行了吗?

作者&#xff1a;文子 编辑&#xff1a;小迪 连年亏损&#xff0c;烧钱不止&#xff0c;寒武纪终是走到悬崖边缘。 寒武纪市值腰斩&#xff0c;连续七年累亏50亿 继连续六年亏损之后&#xff0c;寒武纪又迎来第七年亏损。 1月30日晚&#xff0c;寒武纪正式对外发布2023年年…...

three.js CSS3DObject、CSS2DObject、CSS3DSprite、Sprite的作为标签的区别

CSS3DObject、CSS2DObject、CSS3DSprite、Sprite的作为标签的区别 是否面向相机场景缩放时&#xff0c;是否会跟随是否会被模型遮挡CSS2DObject是否否CSS3DObject否是否CSS3DSprite是是是Sprite是是是 CSS3DObject 和 CSS3DRenderer 搭配来渲染标签&#xff1b; CSS2DObject …...

第7节、双电机直线运动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;前面章节主要介绍单个电机控制&#xff0c;本节内容介绍两个电机完成Bresenham直线运动 一、Bresenham直线算法介绍 Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发&#xff0c;最初用于计…...

【C语言 - 哈希表 - 力扣 - 相交链表】

相交链表题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0…...

C++参悟:内存管理-unique_ptr

内存管理-unique_ptr 一、概述二、成员函数1. 构造、析构函数函数1. 构造函数2. 析构函数3. 赋值号 2. 修改器1. release&#xff08;&#xff09;2. reset()3. swap() 3. 观察器1. get()2. get_deleter3. bool 运算 一、概述 std::unique_ptr 是通过指针占有并管理另一对象&a…...

【征稿已开启】第五大数据、人工智能与软件工程国际研讨会(ICBASE 2024)

第五大数据、人工智能与软件工程国际研讨会&#xff08;ICBASE 2024&#xff09; 2024 5th International Conference on Big Data & Artificial Intelligence & Software Engineering 2024年09月20-22日 | 中国温州 第五届大数据、人工智能与软件工程国际研讨会&…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...