Git快速入门
一 快速使用
1.1 初始化
什么是版本库呢?版本库又名仓库,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录(为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。)
接着会看到这个文件
如果看不到可以设置一下这个查看
第二步,通过git init命令把这个目录变成Git可以管理的仓库(需要先进入创建的目录):
初始化成功后没有任何提示,正常情况 。接着设置一个名字和优先保证命令能正常执行
二.git的基本操作
2.1将文件提交入仓库
首先新建一个txt文本文件
例如read.txt
这个时候我们可以往文件里面手动添加一些内容
第一步,用命令git add告诉Git,把文件添加到仓库 :
第二步,用命令 git commit 告诉Git,把文件提交到仓库:
git commit 命令执行成功后会告诉你: 1 file changed:
1 个文件被改动(我们新添加的readme.txt文件);
2 insertions:插入了两行内容(readme.txt 有两行内容)。
commit 可以一次提交很多文件,所以可以多次add不同的文件,比如:
2.2. 掌握工作区的状态
此时我们修改一个文件的内容
例如
输入命令git status 命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,readme.txt被修改过了, 但还没有提交。
输入命令就能看到之前的修改内容,git diff 顾名思义就是查看差异(difference),显示的格式正是Unix通用的diff格式,可以从上面的命令输 出看到,
知道了对readme.txt 作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两 步,第一步是git add
执行第二步git commit
要随时掌握工作区的状态,使用git status命令。 如果git status 告诉你有文件被修改过,用git diff可以查看修改内容
2.2版本回退
我们继续手动修改read.txt
添加并提交
我们用git log命令查看历史版本,
git log
git log 命令显示从最近到最远的提交日志,我们可以看到3次提交
git log --pretty=oneline 简化版本信息
上面的一大串类似1cb23...的是 commitid(版本号)
回到之前的版本,用版本号前7位即可
git reset --hard f55cc61
只是已经修改但是并未提交所以我们发现这一句还在
但是查看文件确实已经回到了之前的版本
回到现在的版本
当你用$ git reset--版本号 回退到增加 分布式版本时,再想恢复 到追加 基于GPL的,就必须找到追加 基于GPL的的commit id。Git提供了一个命令 gitreflog用来记录你的 每一次命令:
git reflog
可以查询到所以的版本,按之前步骤进入其他版本即可
2.3. 撤消修改
重新创建一个文件 a.txt,做出修改
git restore 文件名#回退修改的操作
cat 文件名#查看文件内容
可发现第二次修改的内容被删除了
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout-- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命 令git reset HEAD ,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤消本次提交,参考版本回退一节,不过前提是没有推 送到远程库。
2.4 删除文件
在Git 中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:
一般情况下,通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,gitstatus命令会立刻告诉你哪些 文件被删除了:
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且,并且git commit:
git rm 文件名#在暂存区删除文件
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
git reset --soft HEAD^
#该命令可以上一次删除的文件
在 Git 中,删除文件有两种情况:一种是直接在文件系统中删除文件,另一种是使用 git rm
命令删除文件。
如果是直接在文件系统中删除文件,可以使用以下方法找回:
- 使用
git checkout -- <file>
命令:该命令可以将文件恢复到最近一次提交的状态。如果文件在删除之前已经被提交到 Git 中,那么使用该命令可以找回文件。 - 使用
git reset HEAD <file>
命令:该命令可以将文件从暂存区恢复到工作区。如果文件在删除之前已经被添加到暂存区,那么使用该命令可以找回文件。 - 使用
git reflog
命令:该命令可以查看 Git 的操作记录,包括删除文件的操作。可以通过查看操作记录,找到删除文件之前的提交,然后使用git checkout
命令恢复文件。
如果是使用 git rm
命令删除文件,可以使用以下方法找回:
- 使用
git reset --soft HEAD^
命令:该命令可以撤销上一次的提交,并将文件保留在工作区中。如果文件在删除之前已经被提交到 Git 中,那么使用该命令可以找回文件。 - 使用
git checkout -- <file>
命令:该命令可以将文件恢复到最近一次提交的状态。如果文件在删除之前已经被提交到 Git 中,那么使用该命令可以找回文件。
需要注意的是,这些方法只能找回已经提交到 Git 中的文件。如果文件在删除之前没有被提交到 Git 中,那么这些方法将无法找回文件。因此,在删除文件之前,最好先将文件提交到 Git 中,以便在需要时可以找回文件。
2.5 工作区,暂存区,版本区
工作区(Working Directory):
这是你实际进行代码编辑和操作的本地目录。你在这个区域中对文件进行各种修改。
暂存区(Staging Area):
也称为索引(Index)。当你决定要将工作区中的某些修改包含在下一次提交中时,就可以使用 git add
命令将这些修改添加到暂存区。暂存区起到了一个过渡的作用,让你可以有选择地组织要提交的内容。
版本库(Repository / Version Area):
这里存储了所有的提交历史记录,包括每个版本的代码状态。每次提交后,新的版本就会被添加到版本库中。它包含了项目完整的历史发展轨迹,你可以随时回滚到之前的任何一个版本。
简单来说,工作区是你日常操作的地方,暂存区是你整理要提交内容的中间地带,而版本区则是记录项目完整版本演变的仓库。这三个区相互配合,使得 Git 能够高效地管理代码的版本和变更。
相关文章:

Git快速入门
一 快速使用 1.1 初始化 什么是版本库呢?版本库又名仓库,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史࿰…...
【18.0】JavaScript---事件案例
【18.0】JavaScript—事件案例 【一】开关灯事件 【介绍】设置一个按钮,按下按钮触发事件,来回切换圆形图片的颜色 【分析】 图片设置:设置成圆形的图片背景颜色:设置红绿两个颜色,来回切换按钮设置:点击…...

推荐系统三十六式学习笔记:原理篇.矩阵分解12|如果关注排序效果,那么这个模型可以帮到你
目录 矩阵分解的不足贝叶斯个性化排序AUC构造样本目标函数训练方法 总结 矩阵分解在推荐系统中的地位非常崇高。它既有协同过滤的血统,又有机器学习的基因,可以说是非常优秀了;但即便如此,传统的矩阵分解无论是在处理显式反馈&…...
Kafka之ISR机制的理解
文章目录 Kafka的基本概念什么是ISRISR的维护机制ISR的作用ISR相关配置参数同步过程示例代码总结 Kafka中的ISR(In-Sync Replicas同步副本)机制是确保数据高可用性和一致性的核心组件。 Kafka的基本概念 在Kafka中,数据被组织成主题…...

如何设计一个点赞系统
首先我们定义出一个点赞系统需要对外提供哪些接口: 1.用户对特定的消息进行点赞; 2.用户查看自己发布的某条消息点赞数量以及被哪些人赞过; 3.用户查看自己给哪些消息点赞过; 这里假设每条消息都有一个message_id, 每一个用户都…...
对象存储测试工具-s3cmd
一、环境安装 官网:https://s3tools.org/s3cmd 下载安装包:https://s3tools.org/download GitHub:https://github.com/s3tools/s3cmd/releases 本文安装包:https://github.com/s3tools/s3cmd/releases/download/v2.0.2/s3cmd-2.0…...
OpenCV--图像色彩空间及转换
图像色彩空间及转换 python代码和笔记 python代码和笔记 import cv2 色彩空间,基础:RGB或BGR OpenCV中: 一、HSV(HSB):用的最多, Hue:色相-色彩(0-360),红色:0,绿色&…...

RIP解决不连续子网问题
#交换设备 RIP解决不连续子网问题 一、不连续子网的概念 相同主网下的子网,被另一个主网分割,例如下面实验拓扑在某公司的网络整改项目中,原先R1 和RS 属于同一主网络 10.0.0.0/8,现被 R2、R3、R4 分离,整网采用了 …...

动态轮换代理IP是什么?有什么用?
如果您要处理多个在线帐户,选择正确的代理类型对于实现流畅的性能至关重要。但最适合这项工作的代理类型是什么? 为了更好地管理不同平台上的多个账户并优化成本,动态住宅代理IP通常作用在此。 一、什么是轮换代理? 轮换代理充当…...
MAC配置VScode中C++项目debug环境
文章目录 配置步骤问题解决Unable to start debugging. LLDB exited unexpectedly with exit code 137 (0x89). 配置步骤 在Mac上配置VS Code以进行C调试涉及几个步骤: 安装必要的工具: 确保您已经安装了Visual Studio Code和C插件。 检查是否安装了Clang…...
PostgreSQL源码分析——CREATE CAST
CREATE CAST源码分析 CREATE CAST用法 CREATE CAST —— 定义一个用户自定义的类型转换 用法如下: CREATE CAST (source_type AS target_type)WITH FUNCTION function_name [ (argument_type [, ...]) ][ AS ASSIGNMENT | AS IMPLICIT ]CREATE CAST (source_type…...

解锁5G新营销:视频短信的优势与全方位推广策略
随着5G时代的全面来临,企业的数字化转型步伐日益加快,视频短信作为新兴的数字营销工具,正逐步展现出其巨大的潜力。视频短信群发以其独特的形式和内容,将图片、文字、视频、声音融为一体,为用户带来全新的直观感受&…...

视频监控平台功能:国外的硬盘录像机NVR通过ISUP协议(原ehome协议)接入AS-V1000视频平台
目录 一、背景说明 二、ISUP协议介绍 1、海康ISUP协议概述 2、ISUP协议支持主码流和子码流切换 (1)灵活配置和个性化 (2)适应不同网络带宽,提高使用体验 3、海康ehome相关文章 三、ISUP协议接入说明 1、平台侧…...
PostgreSQL查询用户
在 PostgreSQL 中,可以通过查询系统表来确定当前用户是否是超级管理员(超级用户)。具体来说,可以使用 pg_roles 系统表,该表包含数据库中所有角色的信息。 以下是查询当前用户是否是超级用户的 SQL 语句: …...
力扣1539.第k个缺失的正整数
力扣1539.第k个缺失的正整数 占位运算 只要n<k ,k;最终k就是结果 class Solution {public:int findKthPositive(vector<int>& arr, int k) {for(int n : arr){if(n < k) k ;else break;}return k;}};...
如何快速解决屏幕适配问题
下面将利用postcss插件快速解决屏幕适配问题。仅用少量代码,新手均可快速使用。 Step1. 安装 npm install postcss-px-to-viewport-8-plugin --save-dev Step2. 新建 postcss.config.js 文件,做基础配置 module.exports {plugins: {postcss-px-to-v…...

Go基础编程 - 09 - 通道(channel)
通道(channel) 1. 声明2. channel的操作3. 无缓冲通道4. 有缓冲通道5. 如何优雅的从通道循环取值6. 单向通道7. 异常总结 上一篇:结构体 Go语言的并发模式:不要通过共享内存来通信,而应该通过通信来共享内存。 Go语言…...

[SAP ABAP] 数据类型
1.基本数据类型 示例1 默认定义的基本数据类型是CHAR数据类型 输出结果: 示例2 STRING数据类型用于存储任何长度可变的字符串 输出结果: 示例3 DATE数据类型用于存储日期信息,并且可以存储8位数字 输出结果: 提示Tips:日期和时间类型的变量可以直接进…...

什么是Vue开发技术
概述 Vue.js 是一个用于构建用户界面的渐进式框架,它设计得非常灵活,可以轻松地被集成到任何项目中。 vue是视图的发音,其目的是帮助开发者易于上手,提供强大的功能构建复杂的应用程序 示例 以下是vue基本的语法概述 声明式渲…...

【QT】
通信服务端实现 widget.h文件 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QTcpServer>//服务器类 #include <QMessageBox>//消息 #include <QTcpServer> #include <QList> #include <QTcpSocket> QT_BEGIN_NAMESPAC…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...