Git的命令学习——适用小白版
浅要了解一下Git是什么:
Git是目前世界上最先进的的分布式控制系统。Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。
在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。但如果用 CVCS 的话,差不多所有操作都需要连接网络。因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。
一、创建版本库
在D盘下 目录下新建一个GiTtext版本库。右键通过命令行的方式打开窗口:

输入linux命令:git init 把这个目录变成git可以管理的仓库,如下:

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

此时GiTtext目录下多了一个.git目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了。
输入:ll .git/查看内容信息:

二、在库中添加、修改文件
都是以linux命令为基础。首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。
1创建文件readme.txt, 此刻文件在工作区(WorkSpace)
输入命令:vi readme.txt 创建文件
![]()
并进入到txt文件内:

2修改txt文件内容
输入i就进入编辑模式,可以输入“hello world” 。保存并退出,点击Esc再输入英文版“:wq”。查看txt文件信息:cat readme.txt
![]()
3通过git status可以查看文件追踪的情况:
4 使用命令 git add readme.txt添加到暂存区里面去:
查看此时文件状态:

如果要提交多个文件,我们可以在add后面指定文件的列表。输入:git add test2.txt test3.txt
如果想要添加工作区所有文件到暂存区,输入:git add .
5 撤销1.4命令回到工作区,输入:git rm --cached readme.txt

再次查看文件状态:
三、提交文件到主分支:git commit -m 'first commit'
现在我们已经提交了一个readme.txt文件了【注意:注释是必须要写的】但是发现报错了,我们需要设置Gitee的email和名字
命令如下:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
将引号里的内容修改为你对应的邮箱和姓名
再次输入 git commit -m 'first commit',可以得到:
查看状态:
即现在已经没有文件未提交。 情况如下:

我们下面可以通过命令git status来查看是否还有文件未提交
四、修改已提交到暂存区的文件
在文件中加入一行update 1。查看git的状态——文件又进入到工作区
这段 Git 输出的意思是:
1)当前处于 master 分支,且该分支还没有任何提交记录
2)存在未跟踪的文件 readme.txt(未被 Git 纳入版本控制)
3)Git 提示可以通过 git add readme.txt 将这个文件添加到暂存区(Staging Area)
提交修改后的文件,依次输入
# 将 readme.txt 文件添加到暂存区
git add readme.txt
# 将暂存区的内容提交到本地仓库,并添加描述信息
git commit -m 'update 1 commit'

查看状态,已不在工作区:
想撤销这些修改并恢复到之前的状态时,可以使用命令:git checkout -- readme.txt![]()

五、版本回退
1.日志查看:git log

这表示这是一次更新操作的提交。
如果嫌上面显示的信息太多的话,我们可以使用命令 git log pretty=oneline 。
2.版本回退和撤销
2.1版本回退
我想把当前的版本回退到上一个版本,可以使用如下2种命令,
git reset --hard HEAD^
那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 。

可以发现出现错误,是因为我就提交过一次。那我进行修改再提交再看,即版本回退成功

查看日志,按理来说日志中原来有第二次提交的信息,但是没有,所以回退成功:
同时我们也可以通过sha1的前四位来做回退:git reset –heard sha1
2.2回退撤销
可以通过命令即可获取到版本号:git reflog

通过上面的显示我们可以知道,增加内容update 2的版本号是21feb0f。我们现在可以命令:
git reset --hard 21feb0f,输出如下:

查看文件,已恢复:
查看日志:
六 、删除文件
查看添加的文件:

想要删除readme.txt ,使用命令:git rm readme.txt。查看:
我们发现删除的文件直接进入暂存区(此刻需要注意,如果使用rm删除不在暂存区,需要git add才会进入暂存区。如果进入暂存区可以退回工作区,使用命令: git reset HEAD test.txt
七、Git配置信息Config
1.config概述
在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:
1、仓库级别 local 【优先级最高】
2、用户级别 global【优先级次之】
3、系统级别 system【优先级最低】
git 仓库级别对应的配置文件是当前仓库下的.git/config
git 用户级别对应的配置文件是用户宿主目录下的~/.gitconfig
git系统级别对应的配置文件是git安装目录下的 /etc/gitconfig
我们可以在cmd命令提示符中输入以下查看配置信息:git config --local -l,如下:

git config --global -l

git config --system -l

2.config修改
修改用户名和邮箱:
git config --global user.name "***"
git config --global user.email "****@**.com"
相关文章:
Git的命令学习——适用小白版
浅要了解一下Git是什么: Git是目前世界上最先进的的分布式控制系统。Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。Git 并不保存这些前后变化的差异数据。实际上…...
如何安全处置旧设备?
每年,数百万台旧设备因老化、故障或被新产品取代而被丢弃,这些设备上存储的数据可能带来安全风险。 如果设备没有被正确删除数据,这些数据往往仍可被恢复。因此,安全处置旧设备至关重要。 旧设备可能包含的敏感数据 旧设备中可能…...
Java 学习记录:基础到进阶之路(一)
今天,让我们深入到 Java 项目构建、基础语法及核心编程概念的领域,一探究竟。 软件安装及环境配置请查看之前更新的博客有着详细的介绍: IDEA软件安装&环境配置&中文插件-CSDN博客 目录 1.Java 项目构建基础 1.项目中的 SRC 目录…...
3.3-3.9 蓝桥杯备赛周记
斜率关系 14届省赛 ![[Pasted image 20250205145241.png]] NE555频率解算温度 频率范围外 无效 unsigned int Freq; if(Freq<200) {humnity0;} else if(Freq>2000) {humnity0;} else{ humnity80.0/1800.0 *(float)(Freq-200)10.0;} 斜率计算题 需要类型转换 和数据需要…...
系统架构设计师—系统架构设计篇—软件架构风格
文章目录 概述经典体系结构风格数据流风格批处理管道过滤器对比 调用/返回风格主程序/子程序面向对象架构风格层次架构风格 独立构件风格进程通信事件驱动的系统 虚拟机风格解释器基于规则的系统 仓库风格(数据共享风格)数据库系统黑板系统超文本系统 闭…...
工厂模式加策略模式 -- 具体实现
这里写目录标题 定义接口定义抽象类定义主处理器分支处理器定义工厂demo 定义接口 public interface EntityHandler extends InitializingBean {MatchContentDTO match(MatchEntityDTO matchEntityDTO);String supportEntityType(); }定义抽象类 public abstract class Abstr…...
STM32---FreeRTOS消息队列
一、简介 1、队列简介: 队列:是任务到任务,任务到中断、中断到任务数据交流的一种机制(消息传递)。 FreeRTOS基于队列,实现了多种功能,其中包括队列集、互斥信号量、计数型信号量、二值信号量…...
python-leetcode-删掉一个元素以后全为 1 的最长子数组
1493. 删掉一个元素以后全为 1 的最长子数组 - 力扣(LeetCode) 可以使用滑动窗口的方式来解决这个问题。我们要找到最长的全 1 子数组,但必须删除一个元素,因此可以将问题转化为寻找最多包含一个 0 的最长子数组。 解题思路 使用双指针(滑动窗口),维护窗口内最多包含一…...
【赵渝强老师】PostgreSQL的模板数据库
在PostgreSQL中,创建数据库时实际上通过拷贝一个已有数据库进行工作的。在默认情况下,将拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的“模板”。如果为template1数据库增加对象,这些对象将被拷贝到后续创建的用户数据库…...
vue2中,在table单元格上右键,对行、列的增删操作(模拟wps里的表格交互)
HTML <template><div><divclass"editable-area"v-html"htmlContent"contenteditableblur"handleBlur"contextmenu.prevent"showContextMenu"></div><button click"transformToMd">点击转成M…...
使用DeepSeek+蓝耘快速设计网页简易版《我的世界》小游戏
前言:如今,借助先进的人工智能模型与便捷的云平台,即便是新手开发者,也能开启创意游戏的设计之旅。DeepSeek 作为前沿的人工智能模型,具备强大的功能与潜力,而蓝耘智算云平台则为其提供了稳定高效的运行环境…...
解决微信小程序中调用流式接口,处理二进制数据时 TextDecoder 不兼容的问题
问题复现 最近在开发一个 AI 问答小程序时,由于接口返回的是流式二进制数据,因此我使用了 TextDecoder 的 decode 方法将二进制数据转换为文本。在开发环境中,数据处理一直没有问题,但在真机测试及上线后,发现调用接口…...
DeepSeek与QWQ大模型对比
题目为《deepseek和qwq大模型对比》1000字 DeepSeek与QWQ大模型对比 引言 在人工智能领域,大模型的发展日新月异。DeepSeek和QWQ作为两种具有代表性的大模型,各自在技术架构、应用场景和性能表现上展现出独特优势。本文将从多个维度对这两种模型进行详细…...
Java 大视界 -- Java 大数据在智慧农业农产品质量追溯与品牌建设中的应用(124)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
c++介绍信号六
信号量是c中实现对有限资源访问控制,现成通过信号量获得对资源访问的许可。可用资源大于0,线程可以对资源进行访问,此时计数器减1。当计数器为0时,不可访问资源,线程进入等待。当资源释放时,线程结束等待&a…...
DeepSeek 本地部署全流程指南:畅享专属AI体验
DeepSeek本地部署全流程指南:畅享专属AI体验 一、部署优势剖析 在本地部署DeepSeek大模型,能带来诸多好处。一方面,数据隐私更有保障,所有运算都在本地独立完成,无需联网,有效避免了数据泄露的风险。另一…...
GStreamer —— 2.18、Windows下Qt加载GStreamer库后运行 - “播放教程 6:音频可视化“(附:完整源码)
运行效果 介绍 GStreamer 带有一组将音频转换为视频的元素。他们 可用于科学可视化或为您的音乐增添趣味 player 的本教程展示了: • 如何启用音频可视化 • 如何选择可视化元素 启用音频可视化实际上非常简单。设置相应的标志,当纯音频流为 found&#…...
IP 地址与端口号:网络通信的双重坐标解析
IP 地址与端口号:网络通信的双重坐标解析 在互联网广袤无垠的世界里,数据恰似无数灵动的信息精灵,在复杂的网络脉络中穿梭往来。而确保这些数据能够精准无误地抵达目的地的关键,便是两个至关重要的核心标识符:IP 地址…...
用Deepseek写一个 HTML 和 JavaScript 实现一个简单的飞机游戏
大家好!今天我将分享如何使用 HTML 和 JavaScript 编写一个简单的飞机游戏。这个游戏的核心功能包括:控制飞机移动、发射子弹、敌机生成、碰撞检测和得分统计。代码简洁易懂,适合初学者学习和实践。 游戏功能概述 玩家控制:使用键…...
【从零开始学习计算机科学】操作系统(三)进程的互斥、同步与通信
【从零开始学习计算机科学】操作系统(三)进程的互斥、同步与通信 进程的互斥、同步与通信进程的互斥进程的同步进程的通信进程的互斥、同步与通信 进程的互斥 两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称…...
Android Compose MutableInteractionSource介绍
在 Android 开发中,Compose 是 Google 推出的现代化 UI 工具包,它让开发者能够更简洁高效地构建应用界面。而 MutableInteractionSource 是 Compose 中一个重要的组件,它可以帮助你处理用户与界面交互时的状态变化,尤其在处理交互…...
[杂学笔记] TCP和UDP的区别,对http接口解释 , Cookie和Session的区别 ,http和https的区别 , 智能指针 ,断点续传
文章目录 1. TCP和UDP的区别2. 对http接口解释3. Cookie和Session的区别4. http和https的区别5. 智能指针6.断点续传 1. TCP和UDP的区别 tcp的特点: 面向连接,可靠性高,全双工,面向字节流udp特点:无连接,不…...
Ubuntu 源码安装 Qt5
1.开发背景 Ubuntu 下安装指定版本的 Qt,最新的Qt官方已经不支持 Qt5.15.2 版本以下版本,所以有必要用旧的源码编译 Qt 库。 2.开发需求 源码安装 Qt5.12.2 3.开发环境 开发环境:Ubuntu18.04 目标版本:Qt5.12.2 4.实现步骤 4…...
【NLP 29、项目 Ⅰ:电商评论分类(好评 / 差评) 】
目录 项目介绍 一、训练及测试数据 二、代码实现 1.配置文件 config.py 2.分割训练集和验证集 split_train_valid.py 3.数据加载文件 loader.py Ⅰ、 加载和处理数据 DataGenerator ① 初始化 ② 数据加载 ③ 文本编码 ④ 补齐 / 截断 ⑤ 获取数据集长度和指定索引的数据 Ⅱ、加…...
Linux进程基础知识
1. 什么是进程? 进程就是运行中的程序,是系统资源分配的基本单位 每个进程都有唯一的PID(进程ID) 进程有父子关系,通过ps -ef可以查看 2. 进程的创建 - fork() pid_t pid fork(); - 简单理解:fork()…...
halcon deeplearn 语义分割经验分享 1
本人因为公司遗留问题,为了解决识别错误的问题。尝试过yolo12进行目标检测。初步测试良好但是是halcon的socket通信不行。故而去测试halcon 的deeplearn。自己标注数据。 注: 这个软件使用非常无脑。推荐没有基础的人去用 语义分割 以下是halcon的调用模型 *读取模型 read_dl_…...
从零开始的python学习(五)P75+P76+P77+P78+P79+P80
本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p6&share_sourcecopy_web&v…...
Kylin麒麟操作系统服务部署 | ISCSI存储服务
以下所使用的环境为: 虚拟化软件:VMware Workstation 17 Pro 麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、网络存储结构 网络存储技术(Network Storage Technologies)是基于数据存储的一种通…...
数据结构_单链表
今天我们要开启链表的学习 🖋️🖋️🖋️ 学了顺序表我们可以知道: 🎈链表其实就是争对顺序表的缺点来设计的,补足的就是顺序表的缺点 🎈链表在物理上是上一个节点存放的下一个节点的地址 链表 …...
深陷帕金森困境,怎样重燃生活信心?
帕金森,这个悄然影响无数中老年人生活的神经系统疾病,正逐渐走进大众视野。患病后,患者常出现静止性震颤,安静时手部、下肢不自主抖动,如同在默默诉说着身体的异常。肢体变得僵硬,行动迟缓,起步…...
