Git―基本操作
Git
- ⛅认识 Git
- ⛅安装 Git
- Centos(7.6)
- Ubuntu
- ⛅Git―基本操作
- 创建本地仓库🍂
- 配置本地仓库🍂
- 工作区, 暂存区, 版本库🍂
- 版本库
- 工作区
- 添加文件🍂
- 查看文件🍂
- 修改文件🍂
- 版本回退🍂
- ☃️案例
- 撤销修改🍂
- ☃️案例
- 删除文件🍂
⛅认识 Git
想象如下场景, 一位画师收到了一份邀约画作的任务
这位画师便开始着手作画, 不久后产出作品(version1)
客户收到之后看了看对画师说, 画的很不错, 就是能不能再加些五颜六色的黑?
画师想, 您是甲方, 您说了算. 于是在原来的基础上产出作品(version2)
客户收到之后看了看对画师说, 画的很不错, 就是还缺那么一丝丝忧伤的感觉
画师想, 您是甲方, 您说了算. 于是在原来的基础上产出作品(version3)
客户收到之后看了看对画师说, 画的很不错, 但我还是喜欢你第一版的作品
画师想, 得亏我会用 Git, 于是画师顺利的拿到了第一版的作品并交付给客户
根据上面的描述, 我们大致对 Git 有所了解🍂
Git是一个版本控制器, 能够记录每次的修改及版本的迭代
譬如当客户问画师, 你第二版作品做出了什么修改的时候, 画师就可以利用Git查看做出了哪些修改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 git2 | git1 git2 | git1 git2 | |
| git1 git2 | git1 git2 | git1 | --soft |
| git1 git2 | git1 | git1 | --mixed |
| git1 | git1 | git1 | --hard |
撤销修改🍂
- 对于撤销修改, 通常存在3种情况
- 工作区的代码还没有 add → 情况1
- 暂存区的代码还没有 commit → 请款2
- 已经 add & commit → 情况3
对于情况3, 想要撤销修改的前提是没有执行 push 操作到远程仓库
☃️案例
- ReadMe 文件
- version1.0 提交的内容 → git1
- version2.0 追加提交的内容 → git2
- 此时 ReadMe 文件的内容为 git1, git2
| 工作区 | 暂存区 | 版本库 | 情况 | 解决方式 |
|---|---|---|---|---|
| git1 git2 | git1 | git1 | 情况1 | git checkout -- "filename" |
| git1 git2 | git1 git2 | git1 | 情况2 | 1. git reset HEAD 2. git checkout -- ReadMe |
| git1 git2 | git1 git2 | git1 git2 | 情况3 | git 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是什么ÿ…...
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等。 由于篇幅限制 和 使知识模块化, 若想了解 使用到的 Win32API 的知识:请点击跳转:【Win32API】贪吃蛇会使用到的 Win32API 目录 1. 贪吃蛇游…...
Mysql MGR搭建
一、架构说明 1.1 架构概述 MGR(单主)VIP架构是一种分布式数据库架构,其中数据库系统采用单主复制模式, 同时引入虚拟IP(VIP)来提高可用性和可扩展性。 这种架构结合了传统主从复制和虚拟IP技术的优势,为数据库系统提供了高可用、 高性能和…...
新火种AI|寒武纪跌落神坛!七年连亏50亿,AI芯片第一股不行了吗?
作者:文子 编辑:小迪 连年亏损,烧钱不止,寒武纪终是走到悬崖边缘。 寒武纪市值腰斩,连续七年累亏50亿 继连续六年亏损之后,寒武纪又迎来第七年亏损。 1月30日晚,寒武纪正式对外发布2023年年…...
three.js CSS3DObject、CSS2DObject、CSS3DSprite、Sprite的作为标签的区别
CSS3DObject、CSS2DObject、CSS3DSprite、Sprite的作为标签的区别 是否面向相机场景缩放时,是否会跟随是否会被模型遮挡CSS2DObject是否否CSS3DObject否是否CSS3DSprite是是是Sprite是是是 CSS3DObject 和 CSS3DRenderer 搭配来渲染标签; CSS2DObject …...
第7节、双电机直线运动【51单片机+L298N步进电机系列教程】
↑↑↑点击上方【目录】,查看本系列全部文章 摘要:前面章节主要介绍单个电机控制,本节内容介绍两个电机完成Bresenham直线运动 一、Bresenham直线算法介绍 Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发,最初用于计…...
【C语言 - 哈希表 - 力扣 - 相交链表】
相交链表题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意࿰…...
C++参悟:内存管理-unique_ptr
内存管理-unique_ptr 一、概述二、成员函数1. 构造、析构函数函数1. 构造函数2. 析构函数3. 赋值号 2. 修改器1. release()2. reset()3. swap() 3. 观察器1. get()2. get_deleter3. bool 运算 一、概述 std::unique_ptr 是通过指针占有并管理另一对象&a…...
【征稿已开启】第五大数据、人工智能与软件工程国际研讨会(ICBASE 2024)
第五大数据、人工智能与软件工程国际研讨会(ICBASE 2024) 2024 5th International Conference on Big Data & Artificial Intelligence & Software Engineering 2024年09月20-22日 | 中国温州 第五届大数据、人工智能与软件工程国际研讨会&…...
熟悉C#如何转TypeScript——SDK与包引用的主要区别
SDK与包引用的主要区别 在 TypeScript 开发中,包引用(import/require)并不是 SDK 的集合,而是模块化代码库的引用方式。以下是详细解释:核心概念对比特性TypeScript/JavaScript (npm).NET Core SDK包管理工具npm / yar…...
LVGL下拉列表控件lv_dropdown实战:从基础配置到高级定制(附完整代码示例)
LVGL下拉列表控件lv_dropdown实战:从基础配置到高级定制(附完整代码示例) 在嵌入式UI开发领域,LVGL(Light and Versatile Graphics Library)凭借其轻量级和高度可定制的特性,已成为许多开发者的…...
3步解锁抖音无水印下载神器:让内容备份效率提升10倍的完整指南
3步解锁抖音无水印下载神器:让内容备份效率提升10倍的完整指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容爆炸的时代,抖音已成为知识传播、文化交流和创意展示的重要平…...
Reset Windows Update Tool终极指南:3步快速修复Windows更新所有问题
Reset Windows Update Tool终极指南:3步快速修复Windows更新所有问题 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool …...
CANopen协议学习与实践干货分享
CANopen协议代码,学习资料,包含CANfestival官方代码框架,官方字典生成工具,可自主设定心跳,pdo,sdo等内容参数,并包含已经移植完成的且带有详细注释的一个主站程序两个从站能正常通信࿰…...
智能求职工具GetJobs:让你的投递效率提升300%的全流程指南
智能求职工具GetJobs:让你的投递效率提升300%的全流程指南 【免费下载链接】get_jobs 💼【找工作最强助手】全平台自动投简历脚本:(boss、前程无忧、猎聘、拉勾、智联招聘) 项目地址: https://gitcode.com/gh_mirrors/ge/get_jobs 每天…...
volatile、内存屏障与 CPU 缓存机制详解
一、前置认知:CPU 缓存模型——并发可见性问题的根源 要理解 volatile,首先要搞懂 CPU 缓存模型。在计算机系统中,CPU 的运算速度远高于内存的读写速度,为了弥补两者之间的性能差距,CPU 厂商在 CPU 和内存之间引入了缓…...
VideoAgentTrek-ScreenFilter低光照与高对比度场景处理效果突破
VideoAgentTrek-ScreenFilter低光照与高对比度场景处理效果突破 不知道你有没有过这样的经历:在昏暗的房间里看手机,屏幕上的内容因为反光变得一片模糊;或者看一个明暗对比特别强烈的视频,亮的地方刺眼,暗的地方又黑得…...
终极指南:如何灵活配置flamegraph性能分析参数生成自定义火焰图
终极指南:如何灵活配置flamegraph性能分析参数生成自定义火焰图 【免费下载链接】flamegraph Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3 项目地址: https://gitcode.com/gh_mirrors/fla/flamegraph flamegraph是…...
Notepad2终极指南:轻量级文本编辑器的完整使用教程
Notepad2终极指南:轻量级文本编辑器的完整使用教程 【免费下载链接】notepad2 Notepad2-zufuliu is a light-weight Scintilla based text editor for Windows with syntax highlighting, code folding, auto-completion and API list for many programming languag…...
