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

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 命令执行后可能发生的一些主要步骤:

  1. 初始化仓库:Git 会在当前目录下创建一个名为 .git 的子目录,这个目录包含了 Git 仓库的所有必要文件和子目录。
  2. 创建默认分支:Git 会创建一个默认的主分支,通常是master分支(在新版本的 Git 中可能是 main 分支),用于跟踪项目的主要开发进展。
  3. 创建初始提交:Git 会创建一个初始的提交(commit),表示仓库的初始状态。这个提交包含了当前目录下所有文件的快照。
  4. 设置配置:Git 会在 .git 目录中创建一个配置文件,用于存储仓库的配置信息,比如用户名、邮箱等。
  5. 完成初始化:一旦执行$ 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 基本了解 设计者&#xff0c;实现者&#xff1a;微软发行时间&#xff1a;2012年10月1日GitHub&#xff1a;https://github.com/microsoft/TypeScriptts和js关系&#xff1a;ts是js的扩展&#xff0c;ts语法包含js ts是新语言吗&#xff1f; 不是&#xff0c;在js基…...

【数学建模】线性规划

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

MQTT 的 QoS 等级:QoS 0、QoS 1、QoS 2

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

搭建个人智能家居 3 -第一个设备“点灯”

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

基于 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&#xff0c;为了不与系统上的其它进程监听端口冲突&#xff0c;我们在启动…...

(delphi11最新学习资料) Object Pascal 学习笔记---第7章第1节(创建对象 )

7.1.4 创建对象 ​ 与其他流行的编程语言比较之后&#xff0c;让我们回到 Pascal&#xff0c;看看如何使用类。 ​ 一旦定义了类&#xff0c;我们就可以创建一个该类型的对象&#xff0c;代码片段如下&#xff08;本节所有代码提取自 Dates1 示例&#xff09;那样&#xff1a…...

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&#xff1a;自动化处理PDF文档集合&#xff0c;提取文献标题、合并文献PDF并生成目录和页码 引言&#xff1a;功能概述步骤一&#xff1a;提取PDF标题步骤二&#xff1a;生成目录和页码&#xff0c;合并PDF技术亮点 代码步骤一&#xff1a;提取PDF标题&#xff08;Step_…...

vue 基于elementUI/antd-vue, h函数实现message中嵌套链接跳转到指定路由 (h函数点击事件的写法)

效果如图&#xff1a; 点击message 组件中的 工单管理&#xff0c; 跳转到工单管理页面。 以下是基于vue3 antd-vue 代码如下&#xff1a; import { message } from ant-design-vue; import { h, reactive, ref, watch } from vue; import { useRouter } from vue-router; c…...

数字排列 - 华为OD统一考试(C卷)

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

yocto 编译raspberrypi 4B并启动

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

Nginx、LVS、HAProxy工作原理和负载均衡架构

当前大多数的互联网系统都使用了服务器集群技术&#xff0c;集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务&#xff0c;这些集群可以是 Web 应用服务器集群&#xff0c;也可以是数据库服务器集群&#xff0c;还可以是分布式缓存服务器集群等等。 在实际应用…...

C语言标准库函数qsort( )——数据排序

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

基础---nginx 启动不了,跟 Apache2 服务冲突

文章目录 查看 nginx 服务状态nginx 启动后 访问页面 127.0.0.1停止 nginx 服务&#xff0c;访问不了页面停止/启动 Apache2 服务&#xff0c;启动 Apache2 页面访问显示正确nginx 莫名启动不了卸载 Apache2 服务器 启动 nginx &#xff0c;但是总是不能实现反向代理&#xff0…...

如何利用百度SEO优化技巧将排到首页

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

CSS隐藏元素的方法 ( 5 种)

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…...

微信小程序(五十九)使用鉴权组件时原页面js自动加载解决方法(24/3/14)

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.使用覆盖函数的方法阻止原页面的自动执行方法 2.使用判断实现只有当未登录时才进行方法覆盖 源码&#xff1a; app.json {"pages": ["pages/index/index","pages/logs/logs"],…...

Git 学习笔记 三个区域、文件状态、分支、常用命令

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

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...