Git 学习笔记

news2025/7/29 21:05:50

这篇笔记记录了我在git学习中常常用到的指令,方便在未来进行查阅。此篇文章也会根据笔者的学习进度持续更新。

网站分享

Git 常用命令大全

Learn Git Branching

基础

$ git init     //在当前位置配置一个git版本库

$ git add <file>     //将文件添加至暂存区

$ git add .          //将文件夹中的所有内容添加至暂存区

$ git commit         //将暂存区的内容提交至库中

$ git commit -m "<注释内容>"     //提交的同时添加注释(即提交信息)

$ git status    //查看暂存区中的内容

$ git log    //查看提交记录

其实每一个提交记录都可以看作一个“快照节点”,像一个相片一样记录的当前库内容的所有细节,方便我们恢复到对应提交节点的内容。

每一个这样的节点对应一个又长又复杂的哈希值,用来索引这些提交。

这个过程中可能会进入Vim编辑器,在按下ESC后切换至命令行模式,输入“:wq”即可保存并退出。

git log展示是可能会进入less分页器,按下q键即可退出。

分支

在我们的提交树中,总是有一个名为HEAD的指针指向我们的提交,其所指的地方常常使我们指令所作用的地方。HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。

$ git branch      //展示所有分支,带*的是HEAD所在的位置

$ git branch <branch_name>      //创建分支,默认为当前提交上

$ git branch <branch_name> <hash>      //在指定提交节点上创建分支

$ git branch -d <branch_name>      //将分支删除

$ git branch -f <branch_name> <hash>       //将分支强制移动到某提交上

其实HEAD的实质也是一个哈希值,一般在需要用到哈希值时,可以使用相对位置。如HEAD~就是HEAD的父提交节点。HEAD~2就是父的父。HEAD^就是父。HEAD^2是第二个父(多个父节点时)。在使用merge合并两个分支后,“将目标分支并入当前分支”的“当前分支”就是第一个父parent,“目标分支”就是第二个父,即^2。

$ git merge <branch_name>      //将目标分支并入当前分支(多条路径)

$ git rebase <branch_name>      //将目标分支嵌入当前分支(一条路径)

$ git rebase <branch_name_1> <branch_name_2>  //将分支1嵌入分支2

在并入分支时可能会产生冲突,命令行中显示“MERGING”的字样,这是需要手动在对应文件做出更改,然后再通过add指令和commit指令重新提交。

$ git checkout <branch_name>/<hash>        //将HEAD移动至目标提交(检出)

$ git checkout -b <branch_name>        //创建新分支并检出,即HEAD到此分支上

$ git reset <hash>         //真撤销

$ git revert <hash>        //假撤销,相当于是做了一个回到上一提交的提交

$ git log --oneline --graph --decorate --all      //可视化查看提交树

修改提交

$ git commit --amend          //可以修改提交信息,可通过该命令添加遗漏文件

$ git commit --amend -m "<新的提交信息>"        //直接修改提交信息

$ git cherry-pick <hash>        //将对应的提交节点复制为新的提交节点

$ git cherry-pick <hash1> <hash2>        //依次生成新创建,<hash>可以是分支或HEAD

$ git rebase -i <hash>          //修改范围内的提交

这个指令会让我们进入Vim编辑器,此时按下“i”、“a”、“s”进入编辑模式,按ESC退出该模式。在编辑模式可以对各个节点进行替换删除等操作,将每个提交前的“pick”替换为其他指令可以产生对应的效果,这些指令都写在下方的注释中。

标签

因为分支是需要我们不断操作移动的,而不是固定在某一提交上的,所以就需要用“标签”来标识重要的提交。标签的内容通常就是版本号,格式一般为 [ v <主版本号> . <次版本号> . <修订号> ] ,修订号的更新通常是修复了某些bug或者优化了某些内容,次版本号更新会添加一些功能但与老版本兼容,主版本号通常用于重大更新,调整范围较大,新老版本不兼容。一般非正式发布的都采用v0.x.x,第一个正式发布的项目一般为 v1.0.0 。

$ git tag          //查看所有标签

$ git tag <tag_name>        //默认在HEAD提交节点上添加标签(无注解,称为轻标签)

$ git tag -a <tag_name>         //启用编辑,添加注解(称为注解标签)

$ git tag -am "<注解>" <tag_name>        //创建标签的同时添加注解(-m用于编辑信息)

$ git tag <tag_name> <hash>        //指定提交节点

$ git tag -d <tag_name>        //删除标签

$ git describe           //描述离默认的HEAD最近的标签信息,只能描述注解标签

$ git describe <hash>       //描述离目标提交最近的标签信息

小结

这篇文章将会作为动态笔记记录,我将把我在日常开发中可能用到的指令更新在这里,方便查阅与使用。

如有补充纠正欢迎留言。

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

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

相关文章

安防监控视频管理平台EasyCVR助力建筑工地施工4G/5G远程视频监管方案

一、项目背景 随着城市建设的快速发展&#xff0c;房地产建筑工地的数量、规模与施工复杂性都在增加&#xff0c;高空作业、机械操作频繁&#xff0c;人员流动大&#xff0c;交叉作业多&#xff0c;安全风险剧增。施工企业和政府管理部门在施工现场管理上都面临难题。政府部门…

Cursor Talk To Figma MCP 安装与配置指南

Cursor Talk To Figma MCP 安装与配置指南 1.项目基础介绍 Cursor Talk To Figma MCP 是一个开源项目&#xff0c;它实现了 Cursor AI 与 Figma 之间的 Model Context Protocol&#xff08;MCP&#xff09;集成。通过这个集成&#xff0c;Cursor 能够与 Figma 进行通信&#…

高性能内存kv数据库Redis

目录 引言 一.Redis相关命令详解及其原理 1.redis是什么&#xff1f; 2.redis中存储数据的数据结构都有哪些&#xff1f; 3.redis的存储结构&#xff08;KV&#xff09; 4.reidis中value编码 5.string的基本原理和相关命令 5.1基本原理 5.2基础命令 5.3string存储结构 …

性能优化实践

4.1 大规模量子态处理的性能优化 背景与问题分析 量子计算中的大规模量子态处理(如量子模拟、量子态可视化)需要高效计算和实时渲染能力。传统图形API(如WebGL)在处理高维度量子态时可能面临性能瓶颈,甚至崩溃(如表格中14量子比特时WebGL的崩溃)。而现代API(如WebGPU…

使用wpa_cli和wpa_supplicant配置Liunx开发板的wlan0无线网

目录 1 简单介绍下wpa_cli和wpa_supplicant 1.1 wpa_supplicant 简介 1.2 wpa_cli 简介 1.3 它们之间的关系 2 启动wpa_supplicant 3 使用rz工具把wpa_cli命令上传到开发板 4 用wpa_cli配置网络 参考文献&#xff1a; 1 简单介绍下wpa_cli和wpa_supplicant 1.1 wpa_su…

C++Cherno 学习笔记day19 [76]-[80] std::optional、variant、any、如何让C++及字符串运行得更快

b站Cherno的课[76]-[80] 一、如何处理OPTIONAL数据 std::optional二、单一变量存放多类型的数据 std::variant三、如何存储任意类型的数据 std::any四、如何让C运行得更快五、如何让C字符串更快 一、如何处理OPTIONAL数据 std::optional std::optional C17 数据是否存在是可选…

【项目日记(一)】-仿mudou库one thread oneloop式并发服务器实现

1、模型框架 客户端处理思想&#xff1a;事件驱动模式 事件驱动处理模式&#xff1a;谁触发了我就去处理谁。 &#xff08; 如何知道触发了&#xff09;技术支撑点&#xff1a;I/O的多路复用 &#xff08;多路转接技术&#xff09; 1、单Reactor单线程&#xff1a;在单个线程…

OpenCV 图形API(35)图像滤波-----中值模糊函数medianBlur()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用中值滤波器模糊图像。 该函数使用带有 ksizeksize 开口的中值滤波器来平滑图像。多通道图像的每个通道都是独立处理的。输出图像必须与输入…

视觉slam框架从理论到实践-第一节绪论

从opencv的基础实现学习完毕后&#xff0c;接下来依照视觉slam框架从理论到实践&#xff08;第二版&#xff09;的路线进行学习&#xff0c;主要以学习笔记的形式进行要点记录。 目录 1.数据里程计 2.后端优化 3.回环检测 4.建图 在视觉SLAM 中整体作业流程可分为&#xff1…

图论--DFS搜索图/树

目录 一、图的存储结构 二、题目练习 846. 树的重心 - AcWing题 dfs&#xff0c;之前学习的回溯算法好多都是用dfs实现搜索的&#xff08;把题目抽象成树形结构来搜索&#xff09;&#xff0c;其实 回溯算法就是 深搜&#xff0c;只不过针对某一搜索场景 我们给他一个更细分…

算法复习(二分+离散化+快速排序+归并排序+树状数组)

一、二分算法 二分算法&#xff0c;堪称算法世界中的高效查找利器&#xff0c;其核心思想在于利用数据的有序性&#xff0c;通过不断将查找区间减半&#xff0c;快速定位目标元素或满足特定条件的位置。 1. 普通二分 普通二分适用于在有序数组中查找特定元素的位置。我们可以…

VSCode写java时常用的快捷键

首先得先安好java插件 1、获取返回值 这里是和idea一样的快捷键的&#xff0c;都是xxxx.var 比如现在我new一个对象 就输入 new MbDo().var // 点击回车即可变成下面的// MbDo mbDo new MbDo()//以此类推get方法也可获取 mbDo.getMc().var // 点击回车即可变成下面的 // St…

使用 Node.js、Express 和 React 构建强大的 API

了解如何使用 Node.js、Express 和 React 创建一个强大且动态的 API。这个综合指南将引导你从设置开发环境开始&#xff0c;到集成 React 前端&#xff0c;并利用 APIPost 进行高效的 API 测试。无论你是初学者还是经验丰富的开发者&#xff0c;这篇文章都适合你。 今天&#…

深度学习入门:神经网络的学习

目录 1 从数据中学习1.1 数据驱动1.2 训练数据和测试数据 2损失函数2.1 均方误差2.2 交叉熵误差2.3 mini-batch学习2.4 mini-batch版交叉熵误差的实现2.5 为何要设定损失函数 3 数值微分3.1 数值微分3.3 偏导数 4 梯度4.1 梯度法4.2 神经网络的梯度 5 学习算法的实现5.1 2层神经…

OSI参考模型和TCP/IP模型

1.OSI参考模型 OSI模型&#xff1a; OSI参考模型有7层&#xff0c;自下而上依次为物理层&#xff0c;数据链路层&#xff0c;网络层&#xff0c;传输层&#xff0c;会话层&#xff0c;表示层&#xff0c;应用层。&#xff08;记忆口诀&#xff1a;物联网叔会用&#xff09;。低…

人工智能中的卷积神经网络(CNN)综述

文章目录 前言 1. CNN的基本原理 1.1 卷积层 1.2 池化层 1.3 全连接层 2. CNN的发展历程 2.1 LeNet-5 2.2 AlexNet 2.3 VGGNet 2.4 ResNet 3. CNN的主要应用 3.1 图像分类 3.2 目标检测 3.3 语义分割 3.4 自然语言处理 4. 未来研究方向 4.1 模型压缩与加速 4.2 自监督学习 4.3 …

WordPress - 此站点出现严重错误

本篇讲 当WordPress出现 此站点出现严重错误 时&#xff0c;该如何解决。 目录 1&#xff0c;现象 2&#xff0c; FAQ 3&#xff0c;管理Menu无法打开 下面是详细内容。 1&#xff0c;现象 此站点出现严重错误&#xff08;このサイトで重大なエラーが発生しました&#x…

在pycharm中搭建yolo11分类检测系统1--PyQt5学习(一)

实验条件&#xff1a;pycharm24.3autodlyolov11环境PyQt5 如果pycharm还没有配PyQt5的话就先去看我原先写的这篇博文&#xff1a; PyQT5安装搭配QT DesignerPycharm&#xff09;-CSDN博客 跟练参考文章&#xff1a; 目标检测系列&#xff08;四&#xff09;利用pyqt5实现yo…

【经验记录贴】使用配置文件提高项目的可维护性

mark一下。 整体修改前后如下&#xff1a; 课题&#xff1a; 在项目中有一个支持的文件类型的FILE_TYPE的定义&#xff0c; 这个是写死在主程序中&#xff0c;每次增加可以支持的文件类型的时候&#xff0c;都需要去修改主程序中这个FILGE_TYPE的定义。 主程序修改其实不太花时…

SOME/IP中”客户端消费“及”服务端提供”的解析

先上结论 AREthAddConsumedEventGroup-->客户端的函数-->谁调用 Consumed函数&#xff0c;谁就是消费者 AREthAddProvidedEventGroup-->服务端的函数-->谁调用 Provided函数&#xff0c;谁就是服务端 Server 端&#xff1a;AREthAddProvidedEventGroup → 声明 &…