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

【Linux】Git原理与使用

  编程不仅是解决问题的艺术,更是对复杂性进行优雅管理的哲学。

前言

  这是我自己学习Linux系统编程的第三篇笔记。后期我会继续把Linux系统编程笔记开源至博客上。 

  上一期笔记是关于Vim文本编辑器知识:

【Linux】Vim文本编辑器-CSDN博客https://blog.csdn.net/hsy1603914691/article/details/147433554

版本控制器Git

1. Git是一款去中心化的分布式版本控制系统

2. Git提交时,仅会记录并提交文件的变动部分

Git的本地使用

安装 

//安装Git
sudo yum install git -y

创建本地仓库 

//创建本地仓库.git
git init

配置本地仓库 

//设置用户名和邮件地址
git config --global user.name "your name"
git config --global user.email "your-email@example.com"
//删除用户名和邮件地址
git config --global --unset user.name "your name"
git config --global --unset user.email "your-email@example.com"
//查看配置列表
git config -l

区域划分 

1. 工作区:指的是用于编写代码或文件的目录

2. 暂存区 指的是 .git目录下的index文件。暂存区有时也被称作 索引,它用于 存放即将提交到仓库的文件变更
3. 版本库 也称为 仓库。在工作区中有一个 隐藏目录.git,它并不属于工作区本身,而是 Git 的版本库所在
4. 这个版本库中的所有文件都可以被 Git管理和追踪,无论是内容的修改、文件的删除等操作, Git都能记录变化,使得你可以在任何时候查看历史记录,或恢复到之前的某个状态。

add+commit

//将目标文件从工作区移动到暂存区 
git add xxx
//查看本地仓库的缓存区
git status
//将当前暂存区中的更改正式提交到本地的Git仓库,并为此次提交附上一条描述性的消息
git commit -m "日志信息"
//显示项目的提交历史记录
git reflog

查看改动

//如果你只是修改了xxx而没有执行git add xxx,那么git diff xxx将显示这些修改的内容
git diff xxx

版本回退 

//回退版本库
git reset --soft file.id(HEAD^)(HEAD^^)
//回退版本库、暂存区
git reset --mixed file.id(HEAD^)(HEAD^^)
//回退版本库、暂存区、工作区
git reset --hard file.id(HEAD^)(HEAD^^)
//把工作区的文件恢复到最近一次提交的版本
git checkout -- file.name

1. 版本回退的本质在于移动HEAD指针以指向历史中的某个提交,从而改变当前分支的状态。

2. 进行版本回退的前提通常是该提交尚未推送到远程仓库(即commit后未执行push),这样可以在不影响他人工作的前提下调整项目状态。

3. 版本回退的主要目的是为了修正本地代码而不影响远程仓库的内容,确保在推送更新前所有更改都符合预期。

分支管理 

分支管理的优点 

1. 分支就像是一个分身,你可以让本体专注于学习C++,同时让分身去学习Java。到了一定阶段后,只要将分身的成果合并回本体,就能够同时掌握C++和Java的知识。

master主分支 

1. 在Git中,每次提交都会形成一条时间线,这条线就是一个分支。

2. HEAD并不直接指向提交,而是指向当前所在分支,而该分支则指向最新的提交。

3. 随着不断提交,分支向前延伸,HEAD也随之始终指向当前最新的提交。

创建合并删除分支 

//查看现有分支
git branch
//创建新的分支xxx
git branch xxx
//切换分支xxx
git checkout xxx
//合并分支到主分支上
git merge xxx
//删除分支xxx
git branch -d xxx

远程仓库 

//将远程的仓库添加到本地
git clone warehouse_link
//将本地仓库的提交推送到远程仓库
git push

致谢

  感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!

相关文章:

【Linux】Git原理与使用

编程不仅是解决问题的艺术,更是对复杂性进行优雅管理的哲学。 前言 这是我自己学习Linux系统编程的第三篇笔记。后期我会继续把Linux系统编程笔记开源至博客上。 上一期笔记是关于Vim文本编辑器知识: 【Linux】Vim文本编辑器-CSDN博客https://blog.csdn…...

Cursor 工具项目构建指南: Python 3.8 环境下的 Prompt Rules 约束

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 Cursor 工具项目构建指南: Python 3.8 环境下的 Prompt Rules 约束前言项目简介技术栈…...

A*算法实现原理以及实现步骤(C++)

算法原理: A*算法是一种启发式搜索算法,用于在图中寻找最短路径。它结合了Dijkstra算法的确保最短路径的优点和贪心最佳优先搜索的高效性。其核心在于使用一个评估函数: f(n) g(n) h(n) 其中: - g(n) 表示从起点到节点n的实际代…...

Devops自动化运维---py基础篇一

python基础篇 1、基本数据类型 2、算术运算符 3、变量 变量:编程语言中能储存结果或能表示值的抽象概念 用途:用一段数据赋予一个简短、易于记忆的名字,方便重复使用3.1 格式转化变量 操作符号描述%s字符串%d整数%f浮点数 实例&#xff1…...

平安养老险蚌埠中心支公司开展金融宣教活动

近日,平安养老保险股份有限公司(以下简称“平安养老险”)蚌埠中心支公司,走进某合作企业开展金融教育宣传活动。 活动现场,平安养老险蚌埠中心支公司工作人员通过发放宣传手册和小礼品等方式,向企业员工普…...

游戏设计模式 - 子类沙箱

核心思想 子类沙箱模式(Subclass Sandbox)通过将核心逻辑封装在基类中,为子类提供安全的"沙箱"环境。子类通过组合或重写基类提供的预定义操作来实现行为,而非直接操作底层系统。 这种模式在游戏开发中常用于实现角色…...

java-springboot文件上传校验之只允许上传excel文件,且检查不能是脚本或者有害文件或可行性文件

四重验证机制: 文件扩展名检查(.xlsx/.xls)MIME类型检查文件魔数验证(真实文件类型)可执行文件特征检测 防御措施: 使用try-with-resources确保流关闭限制文件大小防止DoS攻击使用Apache POI的FileMagic进…...

openvino如何在c++中调用pytorch训练的模型

步骤1:将PyTorch模型转换为ONNX格式 转换代码示例(Python) import torch import torchvision1. 加载训练好的PyTorch模型 model torchvision.models.resnet18(pretrainedTrue) model.eval() # 设置为评估模式2. 创建虚拟输入&#xff08…...

Redisson简明教程—你家的锁芯该换了

1.简介 各位攻城狮们,你还在使用原生命令来上锁么?看来你还是不够懒,饺子都给你包好了,你非要吃大饼配炒韭菜,快点改善一下“伙食”吧,写代码也要来点幸福感。今天咱们就来聊聊Redisson提供的各种锁&#…...

48V带极性反接保护-差共模浪涌防护方案

在工业自动化(电动机驱动 / 工业机器人)、交通基础设施(充电桩 / 车载电子)、安防系统(监控摄像头 / 门禁)、储能设备(BMS / 离网控制器)等领域,DC48V 电源因安全特低电压…...

Python----目标检测(使用YOLO 模型进行线程安全推理和流媒体源)

一、线程安全推理 在多线程环境中运行YOLO 模型需要仔细考虑,以确保线程安全。Pythons threading 模块允许您同时运行多个线程,但在这些线程中使用YOLO 模型时,需要注意一些重要的安全问题。本页将指导您创建线程安全的YOLO 模型推理。 1.1、…...

jvm学习第1day jvm简介,栈溢出、堆溢出

jvm学习第1day jvm简介,栈溢出、堆溢出 jvm简介栈线程安全栈溢出线程运行诊断堆堆溢出 方法区方法区内存溢出常量池和运行时常量池 jvm简介 jvm 是编译后的字节码文件运行的环境, 因此各个平台有了jvm可以运行java.class文件,这是Java跨平台…...

用广告维持的免费 AI 图像生成工具(个人项目分享)

用广告维持的免费 AI 图像生成工具(个人项目分享) 免费 AI 图像生成工具网址:https://aiart.gcc.ac.cn/ 最近做了一个 AI 图像生成器,主要目标是“尽量简单”: 打开网页就能用不用注册、不用登录免费,不…...

分析Web3下数据保护的创新模式

在这个信息爆炸的时代,我们正站在 Web3 的门槛上,迎接一个以去中心化、用户主权和数据隐私为核心的新时代。Web3 不仅仅是技术的迭代,它更是一场关于数据权利和责任的结构性变革。本文将探讨 Web3 下数据保护的创新模式,以期为用户…...

​减少交通拥堵、提高效率、改善交通安全的智慧交通开源了。

智慧交通视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上…...

协议融合驱动效能跃升:Modbus转Ethernet IP的挤出吹塑机应用

在现代工业自动化领域,Modbus作为一种串行通信协议,其稳定性和简单性被广泛应用于各种工控设备中。但随着技术的进步,对于更高速、更远传输距离的需求日益增长,这就需要将Modbus协议通过以太网进行传输,即实现Modbus T…...

Hive的TextFile格式优化方法

Hive的TextFile格式是一种简单的行式存储格式,数据以文本行形式存储,每行包含多个字段,字段间通过分隔符(如逗号、制表符)分隔。尽管TextFile在性能上不如ORC、Parquet等列式存储格式,但在特定场景下仍有其优势。以下是TextFile格式的特点、优势、使用场景及优化方法: …...

bug 记录 - 使用 el-dialog 的 before-close 的坑

需求说明 弹窗中内嵌一个 form 表单 原始代码 <script setup lang"ts"> import { reactive, ref } from "vue" import type { FormRules } from element-plus const ruleFormRef ref() interface RuleForm {name: stringregion: number | null } …...

Next.js 中间件鉴权绕过漏洞 CVE-2025-29927

前言:CVE-2025-29927 是一个影响 Next.js 的严重漏洞&#xff0c;源于开发者信任了客户端请求中携带的 X-Middleware-Rewrite 头部字段。攻击者可以手动构造该头部&#xff0c;实现绕过中间件逻辑&#xff0c;访问本应受保护的资源或 API。 影响版本&#xff1a;Next.js < …...

基于YOLO-NAS-Pose的无人机象群姿态估计:群体行为分析的突破

【导读】 应对气候变化对非洲象的生存威胁&#xff0c;本研究创新采用无人机航拍结合AI姿态分析技术&#xff0c;突破传统观测局限。团队在肯尼亚桑布鲁保护区对比测试DeepLabCut与YOLO-NAS-Pose两种模型&#xff0c;首次将后者引入野生动物研究。通过检测象群头部、脊柱等关键…...

8天Python从入门到精通【itheima】-71~72(数据容器“序列”+案例练习)

目录 71节-数据容器“序列”的切片 1.学习目标 2.什么是序列 3.序列的常用操作——切片 4.小节总结 72节——案例练习&#xff1a;序列的切片实践 1.案例需求 2.代码实战 好了&#xff0c;又一篇博客和代码写完了&#xff0c;励志一下吧&#xff0c;下一小节等等继续&a…...

中达瑞和SHIS高光谱相机在黑色水彩笔墨迹鉴定中的应用

在文件检验与物证溯源领域&#xff0c;对书写材料&#xff08;如墨水&#xff09;进行快速、准确、无损的鉴别至关重要。由陈维娜等人撰写的《高光谱技术结合化学计量法鉴别黑色水彩笔墨迹》&#xff08;发表于《光谱学与光谱分析》2023年第7期&#xff09;利用中达瑞和SHIS凝采…...

dvwa10——XSS(DOM)

XSS攻击&#xff1a; DOM型XSS 只在浏览器前端攻击触发&#xff1a;修改url片段代码不存储 反射型XSS 经过服务器攻击触发&#xff1a;可能通过提交恶意表单&#xff0c;连接触发代码不存储 存储型XSS 经由服务器攻击触发&#xff1a;可能通过提交恶意表单&#xff0c;连…...

dvwa14——JavaScript

LOW 先按提示尝试输入success&#xff0c;提交失败 那用bp抓包一下 &#xff0c;抓到这些&#xff0c;发现有token验证&#xff0c;说明改对token才能过 返回页面f12看一下源码&#xff0c;发现value后面的值像密码&#xff0c;于是试一下md5和rot13的解密 ROT13加密/解密 - …...

外网访问内网服务器常用的三种简单操作步骤方法,本地搭建网址轻松让公网连接

当本地内网环境搭建部署好服务器后&#xff0c;怎么设置让外网公网上连接访问到呢&#xff1f;或本身处于不同局域网间的主机&#xff0c;需要进行数据交互通信&#xff0c;又应该如何实现操作&#xff1f;这些都离不开外网对内网的访问配置。 总的来说外网访问内网服务器主要…...

机器学习实验八--基于pca的人脸识别

基于pca的人脸识别 引言&#xff1a;pca1.pca是什么2.PCA算法的基本步骤 实例&#xff1a;人脸识别1.实验目的2.实现步骤3.代码实现4.实验结果5.实验总结 引言&#xff1a;pca 1.pca是什么 pca是一种统计方法&#xff0c;它可以通过正交变换将一组可能相关的变量转换成一组线…...

UDP包大小与丢包率的关系:原理分析与优化实践

文章目录 &#x1f4e6; UDP包大小与丢包率的关系&#xff1a;原理分析与优化实践一、核心结论&#xff1a;UDP包大小如何影响丢包率&#xff1f;二、技术原理解析&#xff1a;为什么大UDP包更容易丢失&#xff1f;1️⃣ MTU限制与IP分片&#xff08;关键机制&#xff09;2️⃣…...

ubuntu 端口复用

需求描述&#xff1a;复用服务器的 80端口&#xff0c;同时处理 ssh 和 http 请求&#xff0c;也就是 ssh 连接和 http 访问服务器的时候都可以指定 80 端口&#xff0c;然后服务器可以正确分发请求给 ssh 或者 http。 此时&#xff0c;ssh 监听的端口为 22&#xff0c;而 htt…...

Registry和docker有什么关系?

当遇到多个服务器需要同时传docker镜像的时候&#xff0c;一个一个的传效率会非常慢且压力完全在发送方的网络带宽&#xff1b;可以参考git hub&#xff0c;通常我们会用git push将代码传到git hub&#xff0c;如果谁需要代码用git pull就可以拉到自己的机器上&#xff0c;dock…...

C++11实现TCP网络通讯服务端处理逻辑简化版

以下是使用C11实现的TCP服务端处理逻辑&#xff0c;包含循环读取数据、帧头检测&#xff08;AABBCC&#xff09;及4376字节数据包处理&#xff1a; cpp #include <iostream>#include <vector>#include <cstring>#include <unistd.h>#include <arp…...