点击图片获取最近两年爆款好文 

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

Git这些高级用法,喜欢就拿去用!

一文速查Git常用命令,搞定版本控制照做就ok

大牛总结的Git使用技巧,写得太好了!

掌握这10条规范,轻松搞定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 文件。

Hard reset硬重置

硬重置时:无需保留提交已有的修改,直接将当前分支的状态恢复到某个特定提交下。需要注意的是,硬重置还会将当前工作目录(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 指令将远程分支上的最新的修改下载下来。

7、git pull

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

如下图所示:

8、git reflog

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

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

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

原作者:莉迪亚·哈莉(Lydia Hallie)

原文:https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1

民工哥通过翻译作者原文再加上一些个人理解总结而成,版权归原作者所有,纯属技术分享,不作为商业目的。

最新整理的 2TB 技术干货:包括架构师实战教程、大数据、Docker容器、系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、ELK Stack、机器学习、BAT面试精讲视频等。只需在「 民工哥技术之路」微信公众号对话框回复关键字:1024 即可获取全部资料。

☆ END ☆

精彩文章推荐:


微信偷偷上线了新功能!你发现了吗?

学霸“闲鱼”被骗后反击!攻破网络诈骗后台...

坑!就写了一行sql,整个系统挂了..

囤书季,正当时!体验一把薅羊毛的快乐

QPS、TPS、并发用户数、吞吐量关系

这可能是搭建Zookeeper集群介绍最全的文章

点击【阅读原文】发现更多精彩

点个在看、转发支持一下吧

git指令如何葱master转到dev_小姐姐用动画图解Git命令,一看就懂!相关推荐

  1. git指令如何葱master转到dev_看完这篇还不会用Git,那我就哭了

    你使用过 Git 吗?也许你已经使用了一段时间,但它的许多奥秘仍然令人困惑. Git 是一个版本控制系统,是任何软件开发项目中的主要内容.通常有两个主要用途:代码备份和代码版本控制.你可以逐步处理代码 ...

  2. git merge 冲突_卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!

    公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 大家好,我是小 G. 在座的各位应该都知道,Git 作为居家必备.团队协作之 ...

  3. dev用不了_惊艳!小姐姐用动画图解 Git 的 10 大命令,这也太秀了吧!

    原文地址:https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif 原文作者:Lydia Hallie 前言 尽管 Git 是一 ...

  4. git 撤销挂起的更改_小姐姐带你用Git

    首先,Git 是什么? 项目版本管理工具 Git 的工作原理 又 是怎么样的? Git最重要的两个概念:1.工作区和缓存区.版本库 2.master 指针  和 HEAD 指针 现在,小姐姐打开ite ...

  5. linux git指令不存在,一些常用的Git命令

    整理了非常由于的Git一些常用命令,Git是目前世界上最先进的分布式版本控制系统.由于它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上 ...

  6. 个人git指令成长史

    这是一部无聊的git成长史.记录一下我学到的git指令.当然齐全的git指令满天飞,我也这里只是积累使用. 1 从git拉取项目 xxx.git是地址,xx是重命名 git clone xxx.git ...

  7. git 指令学习和熟悉——learn git branching练习笔记

    前言: 在工作中我们用到git系列工具机会很多,也常常需要熟悉git 相关指令,那怎样才能高效学习git指令呢?我们可以通过小游戏learn git branching和菜鸟教程完成学习. 小游戏链接 ...

  8. windows下git使用出错:git push -u origin master fatal: unable to access ‘https://github.com

    git Windows下安装指南 https://www.cnblogs.com/xueweisuoyong/p/11914045.html git push -u origin master fat ...

  9. Git教程:! [rejected]        master - master (fetch first)解决办法

    在github上修改过readme.md后,在本地执行git push origin master后会提示: $ git push origin master To github.com:taozhu ...

最新文章

  1. SQL server 2005中无法新建作业(Job)的问题
  2. 超像素SLIC算法源码阅读
  3. python怎么保存文件代码_Python文件读写保存操作的实现代码
  4. 使用Maven管理的项目,如何设置Context Root
  5. 【bzoj4399】魔法少女LJJ 并查集+权值线段树合并
  6. python树代码_浅析AST抽象语法树及Python代码实现
  7. 德鲁伊 oltp oltp_内存中OLTP –更快变得更简单!
  8. 实验4-2-2 求e的近似值 (15 分)
  9. 首发:成功解决MediaCodec中decoder超过720出错的问题
  10. linux 下安装boost 库
  11. 推荐几本学习MySQL的好书
  12. 小程序 富文本WxParse 内容循环
  13. 深入分析 Spring 基于注解的 AOP 实现原理
  14. html 画excel表格边框,只需五分钟!用Excel做出美观的表格
  15. ICON源码复现(Implicit Clothed humans Obtained from Normals)
  16. 软件工程复习——第4章
  17. 【LeetCode】第599题——两个列表的最小索引总和(难度:简单)
  18. 观其关键字排名查询工具_seo常用工具统计
  19. S-属性定义与L-属性定义
  20. 360浏览器用html5不能播放,360浏览器解决跨域_为什么360浏览器不能看视频怎么解决...

热门文章

  1. vue实现的tabs标签组件
  2. Snabbdom(虚拟dom-4-init函数)
  3. 元学习Meta Learning/Learning to learn
  4. PTA16、列表元素个数的加权和(1) (10 分)
  5. 回文判断(栈+队列)
  6. 哈夫曼树 (最优二叉树)
  7. android drawable 比例,Android中的Drawable基础与自定义Drawable
  8. php能实现前台的页面吗,thinkphp 能实现前台后台登录吗?
  9. Liunx中虚拟机远程复制文件SCP命令
  10. greenDao 3.0基础