小姐姐用动画图解Git命令,一看就懂!

无论是开发、运维,还是测试,大家都知道Git在日常工作中的地位。所以,也是大家的必学、必备技能之一。之前公众号也发过很多git相关的文章:

但是呢,民工哥,也经常在后台看到读者说,命令太多了不好记啊,时间长了不用又忘记了等等的吐槽。是啊,要学一门技术真难,何况现在技术更新、迭代这么快…..

所以,对于学习Git这门技术,要是有一个一看就懂,一学就会的入门资料就好了。前不久,国外的一位小姐姐写了一篇这样的文章《CS Visualized: Useful Git Commands》。作者是来自英属哥伦比亚的小姐姐 Lydia Hallie,在这篇文章里面,她通过生动形象的动画,以更加直观的方式,向开发者展示 Git 命令中的 merge、rebase、reset、revert、cherry-pick 等常用骚操作的具体原理。

下面就给大家带来一些实例分享:

1、git merge

fast-forward模式

no-fast-forward模式

合并冲突修复的过程 ,动画演示如下:

2、git rebase

git rebase 指令会复制当前分支的所有最新提交,然后将这些提交添加到指定分支提交记录之上。

git rebase还提供了 6 种操作模式:

  • reword:修改提交信息
  • edit:修改此提交
  • squash:将当前提交合并到之前的提交中
  • fixup:将当前提交合并到之前的提交中,不保留提交日志消息
  • exec:在每一个需要变基的提交上执行一条命令
  • drop:删除提交

以 drop 为例:

以 squash 为例:

3、git reset

以下图为例:9e78i 提交添加了 style.css 文件,035cc 提交添加了 index.js 文件。使用软重置,我们可以撤销提交记录,但是保留新建的 style.css 和 index.js 文件。

硬重置时:无需保留提交已有的修改,直接将当前分支的状态恢复到某个特定提交下。需要注意的是,硬重置还会将当前工作目录(working directory)中的文件、已暂存文件(staged files)全部移除!如下图所示:

4、git revert

举个例子,我们在 ec5be 上添加了 index.js 文件。之后发现并不需要这个文件。那么就可以使用 git revert ec5be 指令还原之前的更改。如下图所示:

5、git cherry-pick

举个例子:dev 分支上的 76d12 提交添加了 index.js 文件,我们需要将本次提交更改加入到 master 分支,那么就可以使用 git cherry-pick 76d12 单独检出这条记录修改。如下图所示:

6、git fetch

使用 git fetch 指令将远程分支上的最新的修改下载下来。

小姐姐用动画图解Git命令,一看就懂!
7、git pull

git pull 指令实际做了两件事:git fetch 和 git merge。

如下图所示:

小姐姐用动画图解Git命令,一看就懂!
8、git reflog

git reflog 用于显示所有已执行操作的日志!包括合并、重置、还原,也就是记录了对分支的一切更改行为。

如果,你不想合并 origin/master 分支了。就需要执行 git reflog 命令,合并之前的仓库状态位于 HEAD@{1} 这个地方,所以我们使用 git reset 指令将 HEAD 头指向 HEAD@{1}就可以了。

以上就是民工哥今天给大家带来的分享,如果本文对你有所帮助,请点个在看与转发分享支持一下,感谢大家。我们一起学习,共同进步!!!

Original: https://www.cnblogs.com/youkanyouxiao/p/12731313.html
Author: 民工哥
Title: 小姐姐用动画图解Git命令,一看就懂!

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591660/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • django-Celery分布式队列简单使用

    介绍: Celery 是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。 它是一个专注于实时处理的任务队列,同时也支持任务调度。 worker…

    数据库 2023年6月6日
    099
  • HTTP 协议概述

    什么是 HTTP 协议 什么是协议? 协议是指双方,或多方,相互约定好,大家都需要遵守的规则,叫协议。所谓 HTTP 协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的…

    数据库 2023年6月11日
    074
  • Java 中的异常处理机制

    本篇文章主要介绍了 Java 中的异常 如何处理函数抛出的异常 处理异常的原则 异常处理时,性能开销大的地方 Java 语言在设计之初就提供了相对完善的异常处理机制。 我们首先介绍…

    数据库 2023年6月11日
    0102
  • 数据库多表查询 联合查询 增删改查

    插入 方式一 语法: insert into 表名 (字段名,…) values (值,…); 特点: 1、要求值的类型和字段的类型要一致或兼容 2、字段的个数和顺序不一定…

    数据库 2023年6月16日
    0151
  • 不要让“Clean Code”更难维护,请使用“Rule of Three”

    当人们试图将”代码整洁之道(Clean Code)”的原则应用于现有的代码库时,我经常会问这个问题。 我认为这是合情合理的。 当我们开始重构遗留代码时,通常…

    数据库 2023年6月14日
    0104
  • 为什么我选择MySQL Workbench・一

    一、官方 官方提供的工具必然有其优势。 MySQL Workbench有两个版本,社区版和商业版。社区版是免费的。 二、第一个选择 使用MySQL之前用的是SQL Server而微…

    数据库 2023年6月9日
    072
  • day43-反射02

    Java反射02 2.Class类 2.1基本介绍 Class类也是类,因此也继承Object类 Class类对象不是new出来的,而是系统创建的 对于某个类的Class类对象,在…

    数据库 2023年6月11日
    082
  • 【JDBC】笔记(5)— 悲观锁和乐观锁的概念;演示行级锁机制

    1.悲观锁和乐观锁的概念: 2.演示行级锁机制: 演示行级锁机制 此程序先开启事务,并使用行级锁锁住”loginName = abc”的那条记录 impor…

    数据库 2023年5月24日
    074
  • Dubbo源码(六)-服务路由

    前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 今天,来聊点短的,服务路由 Router,本文讲的是路由的调用路径,不讲路由…

    数据库 2023年6月11日
    074
  • Git (简单基本操作)

    1、设置配置信息 查看配置信息:git config -l 设置用户名:git config –global user.name xxx 设置邮箱:git config…

    数据库 2023年6月16日
    082
  • Question08-查询没学过”张三”老师授课的同学的信息

    * SELECT * FROM Student WHERE SID NOT IN ( SELECT DISTINCT Student.SID FROM Student , SC ,…

    数据库 2023年6月16日
    088
  • StoneDB 为何敢称业界唯一开源的 MySQL 原生 HTAP 数据库

    时代在召唤: HTAP Is On The Way 近些年,HTAP 正在受到人们越来越多的关注,Gartner 在 2014 年提出了 HTAP 这个术语和它的定义: Hybri…

    数据库 2023年5月24日
    083
  • Spring Boot之WebSocket

    1、项目地址:https://github.com/hqzmss/test01-springboot-websocket.git 2、IDE:IntelliJ IDEA 2018….

    数据库 2023年6月9日
    085
  • MYSQL的Java操作器——JDBC

    在学习了Mysql之后,我们就要把Mysql和我们之前所学习的Java所结合起来 而JDBC就是这样一种工具:帮助我们使用Java语言来操作Mysql数据库 JDBC简介 首先我们…

    数据库 2023年6月14日
    081
  • MySQL max() min() 函数取值错误

    今天日志出现异常,一步一步debug发现SQL语句返回值出错,进一步发现是max()函数返回出错。点击跳转解决办法,赶时间的朋友可以去获得答案。当然我还是希望大伙看看原由。 sel…

    数据库 2023年5月24日
    085
  • Python 字符串的常用方法

    Python 包含6种数据类型,其中Number(数字)、String(字符串)、Tuple(元组)、 List(列表)、Dictionary(字典)、Set(集合); 这节主要讲…

    数据库 2023年6月16日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球