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

【随笔】Git -- 高级命令(上篇)(六)

请添加图片描述

  • 💌 所属专栏:【Git】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

文章目录

  • 前言
  • 一、Git 高级命令
      • 1、git diff指令
        • (1) 查看工作目录中当前文件和暂存区域中文件的差异:
        • (2) 查看暂存区域中文件与最新提交版本之间的差异:
        • (3) 查看工作目录中当前文件和最新提交版本之间的差异:
        • (4) 比较两个分支之间的差异:
        • (5) 比较两个分支之间的差异:
      • 2、git stash指令
        • (1)将工作目录中的修改保存到stash中:
        • (2)将工作目录中的修改保存到stash中,并添加一条描述:
        • (3)查看当前stash列表:
        • (4)应用暂存的修改创建新的分支:
        • (5)删除最新的stash
        • (6)删除指定的stash
        • (7)应用最新的stash但不从stash列表中移除
        • (8)应用指定的stash但不从stash列表中移除
        • (9)恢复最新的stash,并从stash列表中移除
        • (10)恢复最新的stash,并从stash列表中移除
      • 3、git reset 指令
        • (1)将文件恢复到最近一次提交的状态
        • (2)保留暂存区域和工作目录不变
        • (3)指定提交之后的修改移动到暂存区域,但保留工作目录不变
        • (4)指定提交之后的修改移除暂存区域,但保留在工作目录中
        • (5)将暂存区域和工作目录都重置为指定提交的状态
        • (6)撤销最近一次的提交,并将修改的文件恢复到工作区
        • (7)撤销最近一次的提交,但保留修改的文件
        • (8)撤销最近一次的提交,但保留暂存区域和工作目录
  • 总结


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【Git】专栏的第6篇文章;
  这是今天学习到Git的高级命令(上篇)💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【Git】 , 此专栏是我是夜阑的狗对Git,Gitee等工具使用过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、Git 高级命令

  Git是一个版本控制系统,用于跟踪和管理文件的变化。它是由 Linus Torvalds 于2005年创建的,最初为了帮助 Linux 内核的开发而设计。当项目开发过程中,多个人提交同一个分支很容易出现,本地分支与目标分支不一致导致提交了,这里就讲解一个比较通解的方法来解决。这里给大家推荐一个好用的 Git在线练习地址。话不多说,让我们来看看 Git 是怎么使用的吧。

1、git diff指令

  git diff 指令用于查看工作目录中当前文件和暂存区域域中文件的差异,或者查看工作目录中当前文件和最新提交版本之间的差异。

  该指令的基本用法如下:

git diff [选项] [<commit> [<commit>]]

  其中,[]用于指定一个或多个提交的标识符,例如提交的哈希值或分支名称。如果省略[]参数,则默认将工作目录中的修改与暂存区的内容进行比较。

(1) 查看工作目录中当前文件和暂存区域中文件的差异:
git diff
(2) 查看暂存区域中文件与最新提交版本之间的差异:
git diff --cached
(3) 查看工作目录中当前文件和最新提交版本之间的差异:
git diff HEAD
(4) 比较两个分支之间的差异:
git diff <branch1> <branch2>
(5) 比较两个分支之间的差异:
git diff <file>

  git diff 指令支持一系列选项,用于控制输出的格式和内容。下面是支持的其他选项:

  • –color-words:以单词为单位,以颜色标记差异。
  • –stat:仅显示文件名和统计信息,不显示具体差异内容。
  • –name-only:仅显示有差异的文件名。
  • –name-status:显示有差异的文件名及其状态(例如修改、删除、新增等)。

2、git stash指令

  git stash 指令用于将当前工作目录中的所有未提交的修改暂存起来。可以在切换分支或者解决紧急问题时使用该指令,暂时保存当前修改,以便稍后恢复。以下是一些常用的 git stash 指令及其用法:

(1)将工作目录中的修改保存到stash中:
git stash
(2)将工作目录中的修改保存到stash中,并添加一条描述:
git stash save "描述信息"
(3)查看当前stash列表:
git stash list
(4)应用暂存的修改创建新的分支:

  基于第 stash_index 个暂存的修改创建一个新的分支,并将此修改应用到新的分支中。

git stash branch <branch_name> stash@{stash_index}
(5)删除最新的stash
git stash drop
(6)删除指定的stash

  删除第 stash_index 个暂存的修改,即将此修改从暂存列表中移除。

git stash drop stash@{<stash_index>}
(7)应用最新的stash但不从stash列表中移除
git stash apply
(8)应用指定的stash但不从stash列表中移除

  将第 stash_index 个暂存的修改应用到当前工作目录中,但不会将此修改从暂存列表中删除。

git stash apply stash@{<stash_index>}
(9)恢复最新的stash,并从stash列表中移除
git stash pop
(10)恢复最新的stash,并从stash列表中移除

  将第 stash_index 个暂存的修改应用到当前工作目录中,并将此修改从暂存列表中删除。

git stash pop stash@{<stash_index>}

  注意:如果在使用git stash命令之前有未跟踪的文件,这些文件不会自动被stash起来,需要手动添加到暂存区。

3、git reset 指令

  git reset 指令用于将HEAD指向的当前分支位置重置为指定的提交,并可选择性地更新暂存区域和工作目录。这个命令通常用于撤销之前的提交或者重置当前分支到一个特定的状态。以下是一些常用的 git reset 指令及其用法:

(1)将文件恢复到最近一次提交的状态

  git reset HEAD <文件名> 命令用于将指定文件从暂存区域中移除,并将其恢复到与最后一次提交时相同的状态,但不会改变工作目录中的文件内容。这个命令通常用于取消暂存(或称为取消跟踪)已经添加到暂存区域但不打算提交的文件。

git reset HEAD file.txt
(2)保留暂存区域和工作目录不变

  将HEAD指向的当前分支位置重置为指定的提交,但保留暂存区域和工作目录不变:

git reset <commit>

  这个命令通常用于撤销之前的提交并移动分支指针到另一个位置。在这个命令中,<commit> 可以是提交哈希值、分支名或者标签名。

(3)指定提交之后的修改移动到暂存区域,但保留工作目录不变

  将HEAD指向的当前分支位置重置为指定的提交,并将指定提交之后的修改移动到暂存区域,但保留工作目录不变:

git reset --soft <commit>
(4)指定提交之后的修改移除暂存区域,但保留在工作目录中

  将HEAD指向的当前分支位置重置为指定的提交,并将指定提交之后的修改移除暂存区域,但保留在工作目录中:

git reset --mixed <commit>
(5)将暂存区域和工作目录都重置为指定提交的状态

  将HEAD指向的当前分支位置重置为指定的提交,同时将暂存区域和工作目录都重置为指定提交的状态:

git reset --hard <commit>
(6)撤销最近一次的提交,并将修改的文件恢复到工作区

  将HEAD指向的当前分支位置重置为上一个提交,同时将暂存区域和工作目录都重置为上一个提交的状态:

git reset --hard HEAD^

  注意:HEAD^ 表示上一次提交,可以根据需要使用 HEAD~n 来指定撤销多少次提交。使用 --soft 参数表示保留修改的文件,使用 --hard 参数表示不保留修改的文件,恢复到最近一次提交的状态。

(7)撤销最近一次的提交,但保留修改的文件

  将HEAD指向的当前分支位置重置为上一个提交,但保留修改的文件:

git reset --soft HEAD^
(8)撤销最近一次的提交,但保留暂存区域和工作目录

  将HEAD指向的当前分支位置重置为上一个提交,并保留暂存区域和工作目录不变:

git reset --keep HEAD^

总结

  感谢观看,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

在这里插入图片描述

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:

  • 😀 【LeetCode题解(持续更新中)】
  • 🌼 【鸿蒙系统】
  • 👑 【Python脚本笔记】
  • 🚝 【Java Web项目构建过程】
  • 💛 【微信小程序开发教程】
  • 【JavaScript随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



订阅更多,你们将会看到更多的优质内容!!

相关文章:

【随笔】Git -- 高级命令(上篇)(六)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…...

java中Date类,SimpleDateFormat类和Calendar类

Date类 public Date() 创建一个Date对象&#xff0c;代表的是系统当前此刻的日期时间 public Date(long date) Constructs a Date object using the given milliseconds time value. 把时间毫秒值转变成Date日期对象 public void setTime(long date) Sets an existing Date ob…...

施耐德 PLC 控制系统 产品 + 软件总体介绍 2020

参考 2020.7 官方说明视频&#xff1a;https://www.bilibili.com/video/BV1Mi4y1G7Qc/ 总体说明 施耐德作为工业控制界巨头&#xff08;公认的几大巨头&#xff1a;西门子、AB、施耐德&#xff09;&#xff0c;PLC 控制器产品线很庞大&#xff0c;涵盖了高中低的完整产品线&…...

UniApp 应用发布到苹果商店指南

&#x1f680; 想要让你的 UniApp 应用在苹果商店亮相吗&#xff1f;别着急&#xff0c;让我来带你一步步完成这个重要的任务吧&#xff01;在这篇博客中&#xff0c;我将详细介绍如何将 UniApp 应用顺利发布到苹果商店&#xff0c;让你的应用跻身于苹果生态之中。 引言 &…...

KamaCoder 46. 携带研究材料(第六期模拟笔试)

题目描述 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会&#xff0c;以展示自己的最新研究成果。他需要带一些研究材料&#xff0c;但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等等&#xff0c;它们各自占据不同的空间&#xff0…...

MySQL的基本操作(超详细)

&#x1f468;‍&#x1f4bb;作者简介&#xff1a;&#x1f468;&#x1f3fb;‍&#x1f393;告别&#xff0c;今天 &#x1f4d4;高质量专栏 &#xff1a;☕java趣味之旅 &#x1f4d4;&#xff08;零基础&#xff09;专栏&#xff1a;MSQL数据库 欢迎&#x1f64f;点赞&…...

自动驾驶之心规划控制笔记

Search-based Path Planning Methods Path Finding Problem 一般来说指标有距离,耗费时间,能量,或者多目标。 左图是拓扑地图,蓝色的点就是顶点,绿色的线是连接关系。最后得到的是一个从哪里走的一个最优,并非精细解。 右图是栅格地图,这个搜索出来的是在相对分辨率比…...

Linux中部署Java jar 包 shell 脚本

Linux中部署Java jar 包 shell 脚本 #!/bin/bash set -e# 基础 # export JAVA_HOME/work/programs/jdk/jdk1.8.0_181 # export PATHPATH$PATH:$JAVA_HOME/bin # export CLASSPATH$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarDATE$(date %Y%m%d%…...

auto.js v1.4.4 实现自动打卡

一、使用场景 所在公司的打卡软件可以单独变成一个可以点击的APP&#xff0c;所以只需要实现以下步骤&#xff1a; 自动解锁屏幕返回主屏幕并打卡锁定屏幕需要的环境&#xff1a; 手机端下载并且安装 auto.js v4.1.1 PC端VS安装对应的插件学习资料 B站学习资料 对应 第三期&am…...

【Linux实验室】NFS、DHCP的搭建

NFS、DHCP的搭建 1、nfs服务搭建及测试什么是NFS&#xff1f;环境准备服务端机器安装nfs-utils和rpcbind包启动NFS服务创建/data/NFSdata目录&#xff0c;配置nfs文件启动服务挂载测试在服务端在共享目录下创建文件测试在客户端在共享目录下创建文件 2、dhcp服务搭建及测试什么…...

Samba 总是需要输入网络凭证

输入网络凭证&#xff1a; 用户名是 cat /etc/samba/smb.conf&#xff0c;查看 valid users mxw 为用户名。而不是其他账号名或者用户名&#xff0c;更不是登录计算机时的计算机名&#xff1b; 密码是 需要记住安装samba服务器时&#xff0c;自己设置的password&#xff1…...

图像处理_积分图

目录 1. 积分图算法介绍 2. 基本原理 2.1 构建积分图 2.2 使用积分图 3. 举个例子 1. 积分图算法介绍 积分图算法是图像处理中的经典算法之一&#xff0c;由Crow在1984年首次提出&#xff0c;它是为了在多尺度透视投影中提高渲染速度。 积分图算法是一种快速计算图像区域和…...

B/S架构SaaS模式 医院云HIS系统源码,自主研发,支持电子病历4级

B/S架构SaaS模式 医院云HIS系统源码&#xff0c;自主研发&#xff0c;支持电子病历4级 系统概述&#xff1a; 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查…...

(C)1005 继续(3n+1)猜想

1005 继续(3n1)猜想&#xff1a; 问题描述 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里&#xff0c;情况稍微有些复杂。 当我们验证卡拉兹猜想的时候&#xff0c;为了避免重复计算&#xff0c;可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候&a…...

编译好的C++应用程序拷贝到其它电脑,提示dll未找到依赖项的解决方法。

编译好的C应用程序拷贝到其它电脑上&#xff0c;运行时出现提示dll未找到依赖项。 由于dll依赖于其它dll&#xff0c;在开发用电脑上的环境不能完全与其它电脑相同。 解决办法是找到调用到的dll依赖的所有dll&#xff0c;拷贝到运行目录下。 在开发电脑上&#xff1a; 1、开…...

wps 开发插件

官方文档参考wps官方文档参考 1.环境安装 安装wps https://www.wps.cn/ 安装Node.js https://nodejs.org/en 安装代码编辑器 Visual Studio Code https://code.visualstudio.com/ 环境检查-进入cmd查看 node -v2.demo 2.1 demo下载 打开vscode&#xff0c;新建终端 安装…...

C语言----数据在内存中的存储

文章目录 前言1.整数在内存中的存储2.大小端字节序和字节序判断2.1 什么是大小端&#xff1f;2.2 练习 3.浮点数在内存中的存储3.1.引子3.2.浮点数的存储3.2.2 浮点数取的过程 前言 下面给大家介绍一下数据在内存中的存储&#xff0c;这个是一个了解c语言内部的知识点&#xf…...

【Linux学习】Linux 的虚拟化和容器化技术

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…...

Delphi 是一种内存安全的语言吗?

上个月&#xff0c;美国政府发布了 "回到基石 "报告&#xff1a; 通往安全和可衡量软件之路 "的报告。该报告是美国网络安全战略的一部分&#xff0c;重点关注多个领域&#xff0c;包括内存安全漏洞和质量指标。 许多在线杂志都对这份报告进行了评论&#xff0…...

golang语言系列:Scrum、Kanban等敏捷管理策略

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 golang语言系列 文章&#xff0c;主要对编程通用技能 Scrum、Kanban等敏捷管理策略 进行学习 1.什么是敏捷开发 敏捷是一个描述软件开发方法的术语&#xff0c;它强调增量交付、团队协作、持续规划和持续学习。…...

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

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

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

TJCTF 2025

还以为是天津的。这个比较容易&#xff0c;虽然绕了点弯&#xff0c;可还是把CP AK了&#xff0c;不过我会的别人也会&#xff0c;还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要&#xff1a;在消费市场竞争日益激烈的当下&#xff0c;传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序&#xff0c;探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式&#xff0c;分析沉浸式体验的优势与价值…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor

1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...