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

news2024/11/15 15:31:40

请添加图片描述

  • 💌 所属专栏:【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随手笔记】
  • 🤩 【大数据学习笔记(华为云)】
  • 🦄 【程序错误解决方法(建议收藏)】
  • 🚀 【软件安装教程】



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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1568532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

练习 19 Web [BJDCTF2020]Easy MD5

如果你是第一批做这个题的&#xff0c;这道题一点也不easy 打开在前端代码里面看到&#xff0c;输入框输入的内容实际是’password’ 随意输入内容&#xff0c;查看响应header中的内容有一句SQL代码&#xff0c;可知我们要让password在md5后返回值为true 然后尬住&#xff…

3月造车新势力销量出炉:问界继续领跑,哪吒下滑,岚图抢眼

进入4月份&#xff0c;各大造车新势力们纷纷公布了3月份最新销量成绩&#xff0c;根据相关数据显示&#xff0c;问界再度超越理想&#xff0c;夺得造车新势力头名的位置。而零跑、蔚来、小鹏的销量也实现不错的增长&#xff0c;岚图汽车的表现同样十分亮眼。不过日前遭到周鸿祎…

C/C++程序的(编译,链接)翻译与运行

目录 前言&#xff1a; 1.程序环境 2.翻译环境 3.预处理&#xff08;预编译&#xff09; 4.编译 5.汇编 6.链接 7.运行环境 总结&#xff1a; 前言&#xff1a; 本篇来解释c/c程序的翻译环境与运行环境中的过程&#xff0c;不同的编程语言的翻译环境类似&#xff0c;…

[每周一更]-第92期:Go项目中的限流算法

这周五在清明假期内&#xff0c;提前更新文章 很多业务会有限流的场景&#xff0c;比如活动秒杀、社区搜索查询、社区留言功能&#xff1b;保护自身系统和下游系统不被巨型流量冲垮等。 在计算机网络中&#xff0c;限流就是控制网络接口发送或接收请求的速率&#xff0c;它可防…

MyBatis-Plus03

测试自定义功能 首先创建mapper文件夹。 在UserMapper下编写sql语句&#xff08;把namespace改为自己的&#xff09; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""…

查询SQL server数据库在后台执行过的语句

查询SQL server数据库在后台执行过的语句 SELECT TOP 30000total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数],qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],last_execution_time AS [最后一次执行时间],min_worker_ti…

Windows系统基于WSL子系统的torchquantum安装记录GPU版本

子系统需要的环境&#xff1a; anaconda/miniconda、pip换源(清华源) 1.准备 torchquantum最新版本可以从github上找到&#xff0c;直接clone/下载整个project&#xff0c;查看环境要求&#xff0c;需要安装pytorch和tensorflow 新建一个conda环境&#xff0c;注意python最…

算法沉淀——动态规划篇(子数组系列问题(下))

算法沉淀——动态规划篇&#xff08;子数组系列问题&#xff08;下&#xff09;&#xff09; 前言一、等差数列划分二、最长湍流子数组三、单词拆分四、环绕字符串中唯一的子字符串 前言 几乎所有的动态规划问题大致可分为以下5个步骤&#xff0c;后续所有问题分析都将基于此 …

【JavaScript 漫游】【052】Proxy

文章简介 本篇文章为【JavaScript 漫游】专栏的第 052 篇文章&#xff0c;记录了 ES6 规范中 Proxy 的知识点。 概述 Proxy 用于修改某些操作的默认行为&#xff0c;等同于在语言层面做出修改&#xff0c;所以属于一种“元编程”&#xff08;meta programming&#xff09;&a…

微信公众号如何开通留言功能?

首先&#xff0c;我们需要了解为什么现在注册的公众号没有留言功能。这是因为所有在2018年之后注册的微信公众号都无法再自带留言功能。这一变化是根据微信的通知而实施的。自2018年2月12日起&#xff0c;微信对新注册的公众号进行了调整&#xff0c;取消了留言功能。这一决策主…

多线程重点知识(个人整理笔记)

目录 1. java 多线程 1.1. 什么是进程?什么是线程? 1.1.1. 进程 1.1.2. 线程 1.1.3. 多线程 2. 并行和并发有什么区别&#xff1f; 3. 守护线程是什么&#xff1f; 4. 创建线程有哪几种方式&#xff1f; 4.1. 线程的常见成员方法 5. 线程安全问题 5.1. synchronize…

伪造靶机之iptables

伪造禁ping、网络不可达、主机不可达、协议、端口的命令 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -s 172.18.6.89 -p icmp -j REJECT --reject-with icmp-net-unreachable iptables -A INPUT -s 172.18.6.89 -p icmp -j REJECT --re…

HCIA笔记

console 登录设备的特点&#xff1a; 1、带外&#xff0c;不依赖网络本身的连通性。 2、独占&#xff0c;console口不能被多人同时使用&#xff0c;具备唯一性。 3、本地&#xff0c;console口长度有限&#xff0c;一般只能在机房或者设备现场来使用。 4、只能实现命令行的管理…

Golang | Leetcode Golang题解之第7题整数反转

题目&#xff1a; 题解&#xff1a; func reverse(x int) (rev int) {for x ! 0 {if rev < math.MinInt32/10 || rev > math.MaxInt32/10 {return 0}digit : x % 10x / 10rev rev*10 digit}return }

一文搞懂cookie,session,token,JWT到底是怎么进行验证的???

文章目录 cookiesessiontokenJWT 比较 HTTP 协议是一种无状态协议&#xff0c;每次服务端接收到客户端的请求时&#xff0c;都是一个全新且独立请求&#xff0c;这样就无法获取历史请求的记录&#xff0c;为了解决这种机制&#xff0c;让某个域名下的所有网页能够共享某些数据&…

openlayers 入门教程(九):overlay 篇

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

云原生技术精选:探索腾讯云容器与函数计算的最佳实践

文章目录 写在前面《2023腾讯云容器和函数计算技术实践精选集》深度解读案例集特色&#xff1a;腾讯云的创新实践与技术突破精选案例分析——Stable Diffusion云原生部署的最佳实践精选集实用建议分享总结 写在前面 在数字化转型的浪潮下&#xff0c;云计算技术已成为企业运营…

电脑上怎么压缩图片?三个处理方法介绍

随着我们现在使用图片的地方越来越多&#xff0c;我们处理图片的情况也比较多了&#xff0c;通过压缩图片大小可以使图片文件更小&#xff0c;从而减少存储空间和带宽的使用&#xff0c;同时也可以提高加载速度和性能。良好的图片压缩可以有效地减少文件大小&#xff0c;同时保…

【Spring】使用@Bean和@Import注解配置Bean,与Bean的实例化

目录 1、bean是什么 2、配置bean 2.1、使用Bean注解配置Bean 2.2、使用Import注解配置Bean 3、实例化Bean 1、bean是什么 在 Spring 中&#xff0c;Bean 是指由 Spring 容器管理的对象。Spring IOC 容器负责创建、配置和管理这些 Bean 对象的生命周期。Spring IOC 容器会管…

Linux简单介绍

Linux简单介绍 编译器VMware虚拟机Ubuntu——LinuxOS为什么使用LinuxOS&#xff1f; 目录结构Windows目录结构Linux操作系统home是不是家目录&#xff1f; Linux常用命令终端命令行提示符与权限切换命令tab 作用&#xff1a;自动补全上下箭头pwd命令ls命令mkdir命令touch命令rm…