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

【随笔】Git -- 高级命令(中篇)(七)

请添加图片描述

  • 💌 所属专栏:【Git】

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

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

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

文章目录

  • 前言
  • 一、Git 高级命令
      • 1、git revert指令
      • 2、git cherry-pick指令
      • 3、git rebase 指令
      • 4、git tag 指令
        • (1) 创建标签
        • (2) 列出标签
        • (3) 查看特定标签的信息
        • (4) 删除标签
        • (5) 将标签推送到远程仓库
        • (6) 删除远程仓库上的标签:
  • 总结


前言

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


一、Git 高级命令

  前面已经给学习Git 的一些高级命令,但命令有点多,只能分批按序学习。接下来其他高级命令吧。这里给大家推荐一个好用的 Git在线练习地址。话不多说,让我们原文再续,书接上回吧。

在这里插入图片描述

1、git revert指令

  该指令用于撤销指定提交的更改,并创建一个新的提交来保存撤销操作的结果。这个新的提交会包含撤销操作的更改,而且会成为当前分支的最新提交。
  以下是该指令的基本用法::

git revert <commit>

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

  • 撤销最后一个提交
git revert HEAD
  • 撤销之前的某个特定提交
git revert abc123

  总之,git revert 是一个安全的撤销提交的方法,因为它不会改变提交历史,而是通过创建一个新的撤销提交来实现撤销操作。但是,如果需要彻底删除某个提交,可以使用git rebase或git reset等指令。

2、git cherry-pick指令

  该指令用于选择一个或多个指定的提交,并将它们应用到当前分支上,作为新的提交。以下是git cherry-pick指令的基本用法:

git cherry-pick <commit1> [<commit2> ...]

  其中,<commit1>、<commit2>等是要选择的提交的SHA值或提交引用。如果要将多个提交应用到当前分支上,可以列出多个提交的哈希值,命令会按照列出的顺序一个接一个地应用这些提交。
  需要注意的是,如果在应用提交的过程中发生冲突,Git会提示你解决冲突并手动完成 cherry-pick 操作。

3、git rebase 指令

  该指令用于将一个分支的提交逐个应用到另一个分支上,以使得提交历史更加整洁。以下是该指令的基本用法:

git rebase <branch>

  其中 <branch> 参数是要将当前分支的提交应用到的目标分支。执行该指令后,Git会将当前分支的各个提交逐个应用到目标分支上,创建新的提交。这样,目标分支就会包含当前分支的最新更改,而且提交历史线会更加整洁地呈现出一条直线。
  需要注意的是,git rebase 不会保留原始分支上的提交。相反,它会将提交逐个应用到目标分支上,并创建新的提交。如果在 git rebase 的过程中发生冲突,需要手动解决冲突并使用 git add 命令将解决后的更改添加到暂存区。然后,使用 git rebase --continue 指令继续进行 git rebase 的操作。
  由于git rebase会改变提交历史,因此在团队协作的项目中,不建议对已经推送到远程仓库的分支进行rebase操作,以避免造成不必要的混乱和冲突。

4、git tag 指令

  该指令用于在 Git 仓库中创建、列出、删除或验证标签。标签是一个永久性的指向特定提交的引用,通常用于标记发布版本。使用标签可以方便地标记一些重要的里程碑或版本发布,同时也可以作为引用特定提交的快捷方式。以下是该指令的一些常用用法:

(1) 创建标签

  可以使用 git tag <tagname>命令创建一个轻量级标签,或者使用 git tag -a <tagname> -m "<message>" 命令创建一个带有附注的标签。

  • 创建一个轻量级标签
git tag v1.0.0  
  • 创建一个带有附注的标签
git tag -a v1.0.0 -m "Release version 1.0.0" 
(2) 列出标签

  可以使用git tag命令列出仓库中的所有标签

git tag     
(3) 查看特定标签的信息

  可以使用 git show <tagname> 命令查看指定标签的详细信息。

git show v1.0.0             // 查看v1.0.0标签的详细信息
(4) 删除标签

  可以使用 git tag -d <tagname> 命令删除指定的标签。

git tag -d v1.0.0          // 删除v1.0.0标签
(5) 将标签推送到远程仓库

  默认情况下,git push 命令不会将标签推送到远程仓库。可以使用 git push origin <tagname> 命令将指定的标签推送到远程仓库。

git push origin v1.0.0     // 将v1.0.0标签推送到远程仓库
(6) 删除远程仓库上的标签:

   使用 git push origin 命令将远程仓库的指定的标签进行删除。

git push origin --delete v1.0.0 // 删除v1.0.0标签

  需要注意的是,标签是与提交相关联的,而不是与分支。因此,在创建标签时,不需要指定分支。标签默认是基于当前的HEAD指向的提交创建的。


总结

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

在这里插入图片描述

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

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

更多专栏订阅:

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



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

相关文章:

  • 【快速上手ESP32(基于ESP-IDFVSCode)】03-定时器
  • 数据结构 第六章(图)【上】
  • 使用docker-tc对host容器进行限流
  • Spring源码解析上
  • 机器学习模型——决策树
  • 【二分查找】Leetcode 二分查找
  • jdbc连SQL server,显示1433端口连接失败解决方法
  • 用html写一个爱心
  • 【随笔】Git -- 高级命令(上篇)(六)
  • Shell学习 - 2.24 Shell let命令:对整数进行数学运算
  • 力扣爆刷第111天之CodeTop100五连刷41-45
  • 【软件测试】测试常见知识点汇总
  • 一、持续集成介绍
  • 服务器设置了端口映射之后外网还是访问不了服务器
  • 【Linux】网络基础常识{OSI七层模型/ TCP/IP / 端口号 /各种协议}
  • 【5+】跨webview多页面 触发事件(二)
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Angular数据绑定机制
  • CentOS从零开始部署Nodejs项目
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JavaScript 基本功--面试宝典
  • js写一个简单的选项卡
  • mysql 数据库四种事务隔离级别
  • mysql中InnoDB引擎中页的概念
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Webpack 4x 之路 ( 四 )
  • 从0到1:PostCSS 插件开发最佳实践
  • 从0实现一个tiny react(三)生命周期
  • 欢迎参加第二届中国游戏开发者大会
  • 基于axios的vue插件,让http请求更简单
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 微信小程序:实现悬浮返回和分享按钮
  • 我感觉这是史上最牛的防sql注入方法类
  • 详解NodeJs流之一
  • 以太坊客户端Geth命令参数详解
  • 再谈express与koa的对比
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​插件化DPI在商用WIFI中的价值
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #android不同版本废弃api,新api。
  • #define与typedef区别
  • ( 10 )MySQL中的外键
  • (07)Hive——窗口函数详解
  • (LeetCode C++)盛最多水的容器
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (ZT)一个美国文科博士的YardLife
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (四)Linux Shell编程——输入输出重定向
  • (算法)求1到1亿间的质数或素数
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (正则)提取页面里的img标签
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包