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

这才是Git的正确学习方式

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store

你想要的,这里都有!

我认为学习一门知识最怕的就是一知半解、草草了事,对于Git这种工具类更是如此。

有很多同学工作后,日常用到git clone、git add、git commit,能够解决日常开发中的基本操作就认为差不多会了。

但是,遇到复杂点的问题,发现对Git的基本原理、操作并没有很深入的理解。

这样,只能再去百度查解决方法,查了半天,踩了不少坑终于解决了,下次又遇到同样的问题,发现之前查的内容全忘了,主要原因还是知识不成体系,当初查询的主要目的还是为了解决当下问题。

这种方法其实并没有少花时间,而且在开发过程中会感觉步履维艰,一步一个坎。

所以,我建议如果想在开发中用好Git,还是需要先系统的学习一下Git的用法。

网上搜一下Git学习教程,会发现多如牛毛,有免费的,也有昧着良心收费的。

其实,我觉得从事开发工作,最好的学习资源往往就是官方提供的免费文档,权威,而且理解深度要比很多博主「二次加工」的好很多。

因此,学习方面我还是更推荐Git的官网文档,这里放一下链接:

https://git-scm.com/book/zh/v2

打开文档可以看到,它全面涉及Git基础、Git分支、服务器上的Git、分布式Git、Github、Git工具、Git内部原理等内容,覆盖非常全面。

img

而且,在每一篇文档中,它都会理论、操作、图示相结合,内容循序渐进,由浅入深,是一份质量很高、内容很严谨的官方文档。

img

此外,官方文档提供PDF、epub两种格式的下载,如果喜欢离线阅读或者打印出来看的同学,它也很不错。

基础知识学完了,可能有些同学对于Git的理解还是不够深入,接下来就需要「动手实践」,这里也给大家推荐一个免费开源的工具–LearnGitBranching,目前在Github已经26k+Star,它或许不是最好的,但是在我看来它非常特别,而且对于理解Git命令有很大的帮助。

img

简单概括,LearnGitBranching是一款Git的可视化学习工具,它通过交互式的方式教授大家学习Git,并且提供一些列的挑战,能通过可视化及挑战帮助大家理解Git操作和命令。

学习者可以在交互页面输入各种命令,页面会动态的根据输入命令,以动画的方式展示输入命令之后的效果,下面可以看一个示例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c3egIEuq-1669989760103)(https://pic3.zhimg.com/80/v2-a626b04480db920d53ff07cf75d85866_720w.gif)]

通过这种交互式的方式,可以帮助开发人员更加直观的理解每种操作对应的效果,对于加深对Git命令的理解很有帮助。

除了可视化、交互式的方式,它还提供了一些其他功能。

沙盒模式

img

默认情况下,应用程序以“沙盒模式”启动,并已创建基本存储库。在这里您可以输入命令并随心所欲地处理存储库。

你可以在沙盒里做如下操作:

  • undo:撤消上一条命令的效果
  • reset:从头开始
  • git clone:模拟远程仓库

关卡

img

输入levels可以查看可用的课程/挑战,关卡里提供了从基础到高级、技术、技巧不同等级的教程和挑战,对于加深理解很有帮助。

除此之外,LearnGitBranching有一项git golf功能,它会跟踪解决每个调账使用了多少命令,可以更加直观的看到自己对Git的掌握程度。

关卡生成器

如果觉得默认提供的关卡不够,还可以使用 build level 命令构建关卡。

它会提供一个对话框将引导完成每个过程,我们可以提交这些关卡,也可以分享给其他同学。

传送门

https://learngitbranching.js.org/?locale=zh_CN&NODEMO=

Github地址

https://github.com/pcottle/learnGitBranching

除此之外,再给大家推荐另外一个可以和learnGitBranching结合使用的开源工具。

这款开源工具的名字叫做Git Explorer,目前在Github上1.6k个star。

img

这款工具在Github上的简介是“无需网络搜索就可以找到正确的Git命令”。

如果说learnGitBranching在可视化方面做的非常贴心,那么Git Explorer则更多偏重命令层面理解。

从名称也可以看得出来,它主要就是一款面向Git的浏览器,简单来说,你只需要在Git Explorer上点击选择你想要的动作,它就可以动态输出相应的命令。

重点是,这些都是正确的命令,就不用上网搜索各种乱七八糟的播客、到处踩坑浪费时间了!

img

以上图为例,分步选择自己想要的操作:

  1. 想要’添加
  2. 添加’一个分支
  3. 添加后’切换到新分支

然后,它就会动态输出用法命令:

git checkout -b <new name>

这个是开发者比较经常会遇到的一种Git使用场景。

img

除此之外,它还有很多更加深入的用法。

比如:

  • cherry-pick
  • configure
  • debug
  • rebase
  • recover

下面再看一下稍微复杂一些的用法:

img

它不仅给出使用命令,还会给出一些用法提示,介绍它如何使用。

因此,Git Explorer不仅可以作为一款参考工具,日常开发时用来查询命令,还可以作为一款学习Git的工具来用。

传送门

Git Explorer

https://gitexplorer.com/

Github项目地址

https://github.com/summitech/gitexplorer

建议大家有空可以多浏览Github,有很多好用的开源免费工具。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐Github上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章:

https://github.com/Jackpopc/DevWeekly

相关文章:

  • Linux 命令(204)—— ss 命令
  • 第十四届蓝桥杯模拟赛 第二期题解
  • [激光原理与应用-29]:典型激光器 -1- 固体激光器
  • Redis常见问题
  • 【毕业设计】1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图+PCB+源码+仿真工程+答辩论文)
  • 【数据结构】堆和优先级队列
  • 关于如何找环形链表的入环点
  • 下班路上捡了一部手机,我用8年开发知识主动找到了失主
  • 【Linux系统】第三篇:Linux中软件包管理器yum的使用
  • Bootstrap学习(十一)
  • 学生HTML个人网页作业作品:基于HTML实现教育培训机构网站模板毕业源码(8页)
  • 作为前端你还不懂MutationObserver?那Out了
  • 2021 年河南省中等职业教育技能大赛“网络安全”项目比赛任务书解析教程
  • 【目标检测】Faster R-CNN论文代码复现过程解读(含源代码)
  • rpm包常用命令指南
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 「面试题」如何实现一个圣杯布局?
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 2017 年终总结 —— 在路上
  • CEF与代理
  • Docker 笔记(2):Dockerfile
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Python中eval与exec的使用及区别
  • React Transition Group -- Transition 组件
  • Redis中的lru算法实现
  • TCP拥塞控制
  • 给Prometheus造假数据的方法
  • 聊聊flink的TableFactory
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 如何在 Tornado 中实现 Middleware
  • 收藏好这篇,别再只说“数据劫持”了
  • 双管齐下,VMware的容器新战略
  • 我有几个粽子,和一个故事
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • # Java NIO(一)FileChannel
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (2)Java 简介
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (编译到47%失败)to be deleted
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (六)vue-router+UI组件库
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (四)库存超卖案例实战——优化redis分布式锁
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • *p++,*(p++),*++p,(*p)++区别?
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net网站发布-允许更新此预编译站点