不管是开发、运维,还是测试,大家都知道Git在日常工作中的地位。因此,它也是每个人必须学习和必备的技能之一。公众号之前也发过很多git相关的文章。但是,打工的兄弟们,我经常看到有读者在后台抱怨命令太多难记,用久了就忘记了。是的,学习一门技术真的很难,更何况现在技术更新迭代这么快。。。所以,对于Git的技术学习,如果有一个可以看懂的入门资料就好了一目了然,一目了然。前不久,国外一位小姐姐写了这样一篇文章《CS Visualized: Useful Git Commands》。作者是来自不列颠哥伦比亚省的年轻女士莉迪亚·哈莉(L??ydiaHallie)。在这篇文章中,她使用生动的动画以更直观的方式向开发人员展示Git命令中的合并、变基、重置、还原和cherry-pick。以及其他常用的表演操作的具体原则。下面给大家分享一些例子:1.gitmergefast-forwardmodeno-fast-forwardmode合并冲突修复的过程,动画演示如下:2.gitrebasegitrebase命令会把最新的全部拷贝过来当前分支的提交,然后将这些提交添加到指定的分支提交记录中。gitrebase还提供了6种操作模式:reword:修改提交信息edit:修改本次提交squash:将当前提交合并到之前的提交中fixup:将当前提交合并到之前的提交中,不保留提交日志信息exec:执行一次在每个需要变基的提交上执行drop命令:删除提交。以drop为例:以squash为例:3.gitreset下图为示例:9e78i提交添加了style.css文件,035cc提交添加了index。.js文件。使用软重置,我们可以撤消提交但保留新创建的style.css和index.js文件。HardresetHardreset:不需要保留提交已有的修改,直接将当前分支的状态恢复到具体的提交。需要注意的是,硬重置还会清除当前工作目录(workingdirectory)中的所有文件和暂存文件!如下图所示:4.gitrevert比如我们在ec5be上添加了index.js文件。后来发现不需要这个文件。然后你可以使用gitrevertec5be命令来恢复之前的更改。如下图所示:5.gitcherry-pick例如:dev分支上的76d12提交添加了index.js文件,我们需要将这个提交更改添加到master分支,那么我们就可以使用gitcherry-pick76d12单独查看此记录修改。如下图所示:6.gitfetch使用gitfetch命令下载远程分支上的最新修改。7.gitpullgitpull命令实际上做了两件事:gitfetch和gitmerge。如下图所示:8.gitrefloggitreflog是用来显示所有执行过的操作的日志!包括merging、resetting、reverting,也就是记录对分支的所有改动。如果您不想再合并origin/master分支。您需要执行gitreflog命令。合并前仓库的状态位于HEAD@{1},所以我们使用gitreset命令将HEAD头指向HEAD@{1}。以上就是米工哥今天为大家带来的分享。如果本文对您有帮助,欢迎点击阅读转发分享和支持。谢谢。我们一起学习,一起进步!!!原作者:莉迪亚·哈莉(LydiaHallie)原文:https://dev.to/lydiahallie/cs...农民工翻译作者原文并加入一些个人理解,版权归原作者所有,纯属仅供技术分享,请勿用于商业用途。
