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…...
【转载】使用 .NET Upgrade Assistant(升级助手)升级 .NET 老旧版本项目
使用 .NET Upgrade Assistant(升级助手)升级 .NET 老旧版本项目:https://blog.csdn.net/ChaITSimpleLove/article/details/134711604...
SpringBoot如何自定义启动Banner 以及自定义启动项目控制台输出信息 类似于若依启动大佛 制作教程
前言 Spring Boot 项目启动时会在控制台打印出一个 banner,下面演示如何定制这个 banner。 若依也会有相应的启动动画 _ooOoo_o8888888o88" . "88(| -_- |)O\ /O____/---\____. \\| |// ./ \\||| : |||// \/ _||||| -:- |||||- \| | \\…...
访问控制列表(Access Control Lists,ACL)与哈希查找的爱恨情怨
访问控制列表(Access Control Lists,ACL)与哈希查找 什么是访问控制列表ACL?直接说ACL是干啥的ACL概念为什么需要ACLACL类型ACL匹配机制使用例子 哈希查找什么是哈希查找?哈希查找的基本原理哈希查找的步骤 哈希查找在…...
一文讲清楚分销裂变是什么?怎么做好分销裂变?【附案例】
在数字化营销日益盛行的今天,分销裂变作为一种高效的推广手段,受到了越来越多企业的青睐。那么,分销裂变究竟是什么?我们又该如何做好分销裂变呢?林叔将从定义、方法以及案例分析三个方面进行阐述。 一、分销裂变是什…...
Mybatis Plus 详解 IService、BaseMapper、自动填充、分页查询功能
结构直接看目录 前言 MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 愿景 我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效…...
鸿蒙开发组件:【FA模型的Context】
FA模型的Context FA模型下只有一个Context。Context中的所有功能都是通过方法来提供的,它提供了一些featureAbility中不存在的方法,相当于featureAbility的一个扩展和补全。 接口说明 FA模型下使用Context,需要通过featureAbility下的接口…...
Linux下手动修改服务器时间(没网环境下)
在客户服务器上更新程序时,发现服务器时间不对,现在应该是下午13:44:00,但服务器却显示为:21:40:53,所有是不对的。 date解决办法: 1、由于服务器是没有网的,只能手动设置时间,输入…...
嵌入式系统软件开发环境_3.主要功能和典型产品
1.嵌入式系统软件开发环境的主要功能 由于嵌入式系统的软件开发通常采用的是交叉开发方式,因此其开发环境中的工具应支持这种交叉开发的特点。嵌入式系统软件开发环境的功能应覆盖嵌入式软件开发过程,即编码过程、编译过程、构建过程、下载过程、调式过程…...
使用Python保护或加密Excel文件的7种方法
目录 安装Python Excel库 Python 使用文档打开密码保护 Excel 文件 Python 使用文档修改密码保护 Excel 文件 Python 将 Excel 文件标记为最终版本 Python 保护 Excel 工作表 Python 在保护 Excel 工作表的同时允许编辑某些单元格 Python 锁定 Excel 工作表中的特定单元…...
【嵌入式Linux】<总览> 文件IO(更新中)
文章目录 前言 一、常用函数 1. open函数 2. close函数 3. write函数 4. read函数 5. dup函数 6. dup2函数 二、文件读写细节 1. 换行符 2. 文件描述符 3. errno和perror 前言 在Linux系统中,一切皆文件。因此,掌握Linux下文件IO常用的函数…...
wordpress背景图片尺寸/重庆网站建设技术外包
好久没写博客,工作中想着未来部门需要对docker进行维护相对麻烦,而且,网络上也缺少一些合适的项目,于是准备筹划自己动手。先找到了Docker 的API文档,地址是:https://docs.docker.com/engine/api/v1.26/ 上…...
网页设计与制作软件下载/奶糖 seo 博客
感谢 公众号 / PS制作小教程 的分享!效果图:素材:操作步骤:1、打开PS,新建任意大小画布,然后给背景设置渐变,颜色就看自己个人爱好,输入字体KELE,如图2、然后右键文字图层࿰…...
给别人做软件的网站/域名注册要多少钱
(一)什么是pca pca,也就是主成分分析法(principal component analysis),主要是用来对数据集进行降维处理。举个最简单的例子,我要根据姓名、年龄、头发的长度、身高、体重、皮肤的白皙程度(随便想的)等特征来预测一个人…...
成品网站w灬源码三叶草/天津seo
1.MS15-034漏洞的补丁是KB3042553;2.如果在一台Windows Server 2012 R2的服务器上直接安装补丁文件KB3042553,可能会出现“此更新不适用于您的计算机”的问题,这是因为此补丁依赖于补丁:KB3021910、KB2919355。只需要按顺序安装以下补丁即可&…...
网站开发框架的主要作用/微信软文是什么意思
rpm -i --test abc.rpm...
深圳网站建设方案服务公司/网页设计作品集
这题目快坑爹的,我也是提交了蛮多次才通过的,首先他给数据你使用long类型是完全可以处理的但是题目曾提到过需要1000个数字组成吧,挺大的,显然他的隐藏测试数据long类型是完全不符合的,这道题目用java中的BigInteger类…...