git基础命令(二)
目录
- git revert 撤消上一次提交的更改但是会创建一个新的提交来撤消该提交所做的更改
- git show 显示提交详细信息
- git mv 重命名文件
- git rm 从工作树和索引中移除文件
- git clean 从工作树中移除未跟踪文件
- git checkout 将文件恢复到工作树
- git reset 撤销更改、移动 HEAD 指针以及重置暂存区
- git reset 基本用法:
- git reset <commit>
- git reset --hard <commit> 回到特定提交但本次提交的内容会全部丢失
- git reset --soft <commit> 回到特定提交,本次提交的内容会全部恢复到add之前的状态
- git reset 示例说明:
- git add -u 仅将修改和删除的文件添加到索引
- git init 在当前目录下创建一个新的 Git 仓库
- 参考
用于知识记录。后续有新的的内容,例子,将持续更新本文档。
git revert 撤消上一次提交的更改但是会创建一个新的提交来撤消该提交所做的更改
git revert HEAD
Git revert
命令将一个提交作为参数,
撤消上一次提交的更改但是会创建一个新的提交来撤消该提交所做的更改。
git show 显示提交详细信息
$ git show <commit-id>
commit-id
可以通过 git log
获取或命令参数中的HEAD
git mv 重命名文件
重命名文件; 即使文件在暂存区即已经git add
了也可以修改
$ git mv <oldfilename> <newfilename>
git rm 从工作树和索引中移除文件
$ git rm <file>
git clean 从工作树中移除未跟踪文件
$ git clean
添加-n
选项将只显示将要移除的文件。添加-f选项实际上会移除文件。
在默认的情况下,不会移除.gitignore
配置文件下列出的文件。但是,如果您指定-x选项,.gitignore
下列出的文件将从工作树中移除。
git checkout 将文件恢复到工作树
即把文件从已经add的状态恢复成add前
git checkout -- <file>
git checkout -- .
把所有git add
的文件都恢复到git add
前
git reset 撤销更改、移动 HEAD 指针以及重置暂存区
git reset
是 Git 中一个非常有用的命令,可以用来撤销更改、移动 HEAD 指针以及重置暂存区等操作。下面是 git reset 的详细用法和一些示例说明:
git reset 基本用法:
git reset
git reset <commit>
:将当前分支的HEAD
指针移动到指定的 <commit>
,并将暂存区重置为该 <commit>
的状态,但工作目录不受影响。
git reset --hard 回到特定提交但本次提交的内容会全部丢失
git reset --hard <commit>
:将当前分支的HEAD
指针、暂存区和工作目录都重置为指定的 <commit>
的状态。慎用,会丢失未提交的更改。
什么时候用这个?
比如你刚已经git add git commit到本地的内容,你想撤销这次的提交,并且这次提交的内容全都不要了,就用
git reset --hard HEAD
这样会回到你提交前本地最新的那笔提交。
如果你想回到过去的某笔特定的提交,获取这次提交的commit id
,且你本次提交的所有内容都不要了,就使用
git reset --hard commit-id
这样就能回到你想要的那笔提交了(当然这个指的是你本地的)
git reset --soft 回到特定提交,本次提交的内容会全部恢复到add之前的状态
git reset --soft <commit>
:将 HEAD
指针移动到指定的 <commit>
,但保留暂存区和工作目录不变。这样你可以重新提交之前的更改。
同理,不过这个会把你之前提交的内容全部恢复到工作树,就是你提交之前,add之前的状态。会保留你的文件。
git reset 示例说明:
- 撤销最后一次提交并保留更改:
git reset --soft HEAD~1
这个命令会将 HEAD
指针移动到倒数第二次提交,保留最后一次提交的更改在暂存区中,你可以修改后重新提交。
- 撤销最后一次提交并丢弃更改:
git reset --hard HEAD~1
这个命令会将 HEAD
指针移动到倒数第二次提交,并丢弃最后一次提交的更改,包括暂存区和工作目录中的更改。
- 将暂存区的更改移除暂存状态:
git reset HEAD <file>
这个命令会将指定文件 <file>
从暂存区中移除,但保留在工作目录中的更改。
- 将 HEAD 指针移动到特定的提交:
git reset --hard <commit_hash>
这个命令会将 HEAD 指针
移动到指定的 <commit_hash>
,并且重置暂存区和工作目录为该提交的状态。
注意事项:
- 使用
git reset
命令时要谨慎,因为它会改变仓库的状态,可能会导致数据丢失。 - 在进行
reset
操作之前,建议先使用git status
和git diff
等命令来查看当前的状态和更改,以免造成意外操作。
git add -u 仅将修改和删除的文件添加到索引
$ git add -u
此命令将仅注册已添加到索引的文件的更改。它不会暂存未跟踪的文件
git init 在当前目录下创建一个新的 Git 仓库
执行 $ git init
命令会在当前目录下创建一个新的 Git 仓库。具体来说,以下是$ git init
命令执行后可能发生的一些主要步骤:
- 初始化仓库:Git 会在当前目录下创建一个名为 .git 的子目录,这个目录包含了 Git 仓库的所有必要文件和子目录。
- 创建默认分支:Git 会创建一个默认的主分支,通常是
master
分支(在新版本的 Git 中可能是 main 分支),用于跟踪项目的主要开发进展。 - 创建初始提交:Git 会创建一个初始的提交(
commit
),表示仓库的初始状态。这个提交包含了当前目录下所有文件的快照。 - 设置配置:Git 会在
.git
目录中创建一个配置文件,用于存储仓库的配置信息,比如用户名、邮箱等。 - 完成初始化:一旦执行
$ git init
完成,当前目录就成为了一个 Git 仓库,你可以使用 Git 来进行版本控制、提交更改、创建分支等操作。
在执行完$ git init
后,你就可以开始使用 Git 来管理项目的版本控制了。记得在使用 Git 前,需要先配置用户信息,例如设置用户名和邮箱,以便 Git 能够正确记录提交信息。
参考
适合初学者的简单 Git 教程
相关文章:

git基础命令(二)
目录 git revert 撤消上一次提交的更改但是会创建一个新的提交来撤消该提交所做的更改git show 显示提交详细信息git mv 重命名文件git rm 从工作树和索引中移除文件git clean 从工作树中移除未跟踪文件git checkout 将文件恢复到工作树git reset 撤销更改、移动 HEAD 指针以及…...

从零开始学习typescript系列 1:typescript 基本了解之是什么,为什么,以及怎么用
初识ts 基本了解 设计者,实现者:微软发行时间:2012年10月1日GitHub:https://github.com/microsoft/TypeScriptts和js关系:ts是js的扩展,ts语法包含js ts是新语言吗? 不是,在js基…...

【数学建模】线性规划
针对未来可能的数学建模比赛内容,我对学习的内容做了一些调整,所以先跳过灰色关联分析和模糊综合评价的代码,今天先来了解一下运筹规划类——线性规划模型。 背景: 某数学建模游戏有三种题型,分别是A,B&am…...

MQTT 的 QoS 等级:QoS 0、QoS 1、QoS 2
MQTT(Message Queuing Telemetry Transport)是一种轻量级的通信协议,在物联网和消息传递系统中广泛应用。MQTT 提供了三个不同的 QoS(Quality of Service)等级,用于确保消息的可靠性和传输效率。本文将详细…...

搭建个人智能家居 3 -第一个设备“点灯”
搭建个人智能家居 3 -第一个外设“点灯” 前言ESPHome点灯 HomeAssistant 前言 前面我们已经完成了搭建这个智能家居所需要的环境HomeAssistant和ESPHome,今天我们开始在这个智能家居中添加我们的第一个设备(一颗LED灯),如果环境…...

基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台
tar -xzf prometheus-2.7.0-rc.1.linux-amd64.tar.gzcd prometheus-2.7.0-rc.1.linux-amd64/./prometheus --config.fileprometheus.yml --web.listen-address:5555 Prometheus 默认监听端口号为 9090,为了不与系统上的其它进程监听端口冲突,我们在启动…...

(delphi11最新学习资料) Object Pascal 学习笔记---第7章第1节(创建对象 )
7.1.4 创建对象 与其他流行的编程语言比较之后,让我们回到 Pascal,看看如何使用类。 一旦定义了类,我们就可以创建一个该类型的对象,代码片段如下(本节所有代码提取自 Dates1 示例)那样:…...

unity学习笔记 Restsharp 使用心得
Restsharp Restsharp安装使用注意事项api方式的流式调用--子线程中执行代码无响应的问题问题描述问题解决其他问题 Restsharp 安装 可以在github上下载dll文件然后导入到unity中 https://github.com/adrenak/RestSharp.Unity 也可以百度直接搜Restsharp然后下载相关的文件导入…...

YOLOV5 部署:QT的可视化界面推理(创建UI,并编译成py文件)
1、前言 之前用YOLOV5 做了一个猫和老鼠的实战检测项目,本章将根据之前训练好的权重进行部署,搭建一个基于QT的可视化推理界面,可以检测图片和视频 本章使用的数据集和权重参照:YOLOV5 初体验:简单猫和老鼠数据集模型训练-CSDN博客 可视化界面如下: 2、安装Pyside6 本…...

Python:自动化处理PDF文档集合,提取文献标题、合并文献PDF并生成目录和页码
Python:自动化处理PDF文档集合,提取文献标题、合并文献PDF并生成目录和页码 引言:功能概述步骤一:提取PDF标题步骤二:生成目录和页码,合并PDF技术亮点 代码步骤一:提取PDF标题(Step_…...

vue 基于elementUI/antd-vue, h函数实现message中嵌套链接跳转到指定路由 (h函数点击事件的写法)
效果如图: 点击message 组件中的 工单管理, 跳转到工单管理页面。 以下是基于vue3 antd-vue 代码如下: import { message } from ant-design-vue; import { h, reactive, ref, watch } from vue; import { useRouter } from vue-router; c…...

数字排列 - 华为OD统一考试(C卷)
OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 小明负责公司年会,想出一个趣味游戏: 屏幕给出 1−9 中任意 4 个不重复的数字,大家以最快时间给出这几个数字可拼成的数字从小到大排列位于第 n 位置…...

yocto 编译raspberrypi 4B并启动
yocto 编译raspberrypi 4B并启动 环境准备 最近到手一个树莓派4B,准备拿来玩一玩,下面记录下使用yocto构建RaspberryPi的镜像并刷写启动的过程。 首先准备主机编译环境,必要组件安装: sudo apt install gawk wget git diffstat…...

Nginx、LVS、HAProxy工作原理和负载均衡架构
当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是 Web 应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。 在实际应用…...

C语言标准库函数qsort( )——数据排序
大家好!我是保护小周ღ,本期为大家带来的是深度解剖C语言标准库函数 qsort(),qsort()函数他可以对任意类型的数据排序,博主会详细解释函数使用方法,以及使用快速排序的左右指针法模拟实现函数功能,这样的排…...

基础---nginx 启动不了,跟 Apache2 服务冲突
文章目录 查看 nginx 服务状态nginx 启动后 访问页面 127.0.0.1停止 nginx 服务,访问不了页面停止/启动 Apache2 服务,启动 Apache2 页面访问显示正确nginx 莫名启动不了卸载 Apache2 服务器 启动 nginx ,但是总是不能实现反向代理࿰…...

如何利用百度SEO优化技巧将排到首页
拥有一个成功的网站对于企业和个人来说是至关重要的,在当今数字化的时代。在互联网上获得高流量和优质的访问者可能并不是一件容易的事情,然而。一个成功的SEO战略可以帮助你实现这一目标。需要一些特定的技巧和策略、但要在百度搜索引擎中获得较高排名。…...

CSS隐藏元素的方法 ( 5 种)
还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…...

微信小程序(五十九)使用鉴权组件时原页面js自动加载解决方法(24/3/14)
注释很详细,直接上代码 上一篇 新增内容: 1.使用覆盖函数的方法阻止原页面的自动执行方法 2.使用判断实现只有当未登录时才进行方法覆盖 源码: app.json {"pages": ["pages/index/index","pages/logs/logs"],…...

Git 学习笔记 三个区域、文件状态、分支、常用命令
Git 学习 GitGit概念VS Code中使用仓库(repository)示例 Git 使用时的三个区域示例 Git 文件状态示例 Git 暂存区示例 Git 回退版本删除文件忽略文件示例 分支分支的使用分支的合并与删除分支的合并冲突 Git常用命令Git远程仓库 (HTTP)步骤远程仓库 克隆…...

OrangePiLinux连接小米手机使用adb显示“List of devices attached”的问题解决
参考文章adb连接不上手机,提示“List of devices attached” - 简书 (jianshu.com) adb解决报错error: no devices/emulators found error: cannot connect to daemon_adb.exe: no devices/emulators found-CSDN博客 error: no devices/emulators found解决办法-C…...

【Jenkins】data stream error|Error cloning remote repo ‘origin‘ 错误解决【亲测有效】
错误构建日志 17:39:09 ERROR: Error cloning remote repo origin 17:39:09 hudson.plugins.git.GitException: Command "git fetch --tags --progress http://domain/xxx.git refs/heads/*:refs/remotes/origin/*" returned status code 128: 17:39:09 stdout: 17…...

3.1_9 基本分段存储管理
文章目录 3.1_9 基本分段存储管理(一)分段(二)段表(三)地址变换(四)分段、分页管理的对比 总结 3.1_9 基本分段存储管理 (一)分段 进程的地址空间:…...

基于SpringBoot+Druid实现多数据源:baomidou多数据源
前言 本博客姊妹篇 基于SpringBootDruid实现多数据源:原生注解式基于SpringBootDruid实现多数据源:注解编程式基于SpringBootDruid实现多数据源:baomidou多数据源 一、功能描述 支持 数据源分组 ,适用于多种场景 纯粹多库 读写…...

Redis开发规范与性能优化(二)
开发规范与性能优化 3.客户端使用 1.【推荐】避免多个应用使用一个Redis示例 正例:不相干的业务拆分,公共数据库做服务化 2.【推荐】使用带有连接池的数据库,可以有效控制链接,同时提高效率,标准使用方式如代码所示 public c…...

我们是否生活在一个超大型生物的大脑之中?——对多元宇宙观与生命存在形式的哲学探讨
随着科技和哲学思辨的深入,关于人类所处宇宙的本质及我们自身存在的真实性的讨论越发引人入胜。其中一种颇具科幻色彩的观点认为,我们可能生活在某个巨大生物的大脑之中,所有的物理规律、自然现象以及我们的感知体验,都可能是这个…...

【Python数据结构与判断7/7】数据结构小结
目录 序言 整体回忆 定义方式 访问元素 访问单个元素 访问多个与元素 修改元素 添加元素 列表里添加元素 字典里添加元素 删除元素 in运算符 实战案例 总结 序言 今天将对前面学过的三种数据结构:元组(tuple)、列表(…...

探讨:MySQL和PostgreSQL谁更火
一、有人说PostgreSQL比MySQL火🔥 PostgreSQL相比于MySQL越来越受欢迎的原因可以从以下几个方面来阐述: 许可协议灵活性: PostgreSQL采用的是较为宽松的BSD许可证,允许企业在开源的基础上自由使用、修改和分发,而无需…...

hbase和es的选取 hbase与es结合
hbase和es的选取 hbase与es结合 背景介绍 HBase与ElasticSearch是现代应用在处理海量数据的技术架构会经常被使用的两款产品,其中HBase是一个分布式KV系统,具有灵活Schema、水平扩展、低成本、高并发的优势,但在复杂查询、分析能力方面相对…...

GoLang:云原生时代致力于构建高性能服务器的后端语言
Go语言的介绍 概念 Golang(也被称为Go)是一种编程语言,由Google于2007年开始设计和开发,并于2009年首次公开发布。Golang是一种静态类型、编译型的语言,旨在提供高效和可靠的软件开发体验。它具有简洁的语法、高效的编…...