既然git这么好用,为什么没有一个官方好用的的可视化工具呢?
63 个回答
我认为Git是一款神器的工具,针对Git使用者,可以泾渭分明的划分成两种类别:
- 似懂非懂的
- 真正熟练的
我认为绝大多数都属于前者,尽管很多同学可能心里不服,但是这就是事实。
有多少人真正从头至尾了解过Git的原理?在开发中如果遇到复杂的Git使用问题,是否可以不借助百度谷歌的情况下解决问题?
在开发中,绝大多数使用Git的场景都是比较简单的,拉取、提交、合并....所以,对于很多同学可能开发者一两年也没有用到过Git的复杂使用场景,自然在内心中觉得Git没什么难的。
针对Git可视化工具,估计有不少同学会心想,Git这么简单,还用得着可视化工具?
这个回答是肯定的。
就像前面所说的,很多人在Git过程中并不是真正清楚背后发生了什么?执行一条命令之后会有什么样的效果?
这一点Git的确做的不太好,所以,最近Meta(原Facebook)就开源了一款新的版本控制工具,就特意在用户体验和可视化方面就做了很多努力,这一点也是Git需要像Meta借鉴和学习的,感兴趣的可以阅读我的另一篇内容了解一下:
话说回来,开源社区是非常庞大而且强大的,虽然Git本身不具备可视化功能,对于希望理解Git的同学有很大长大。但是,有一些开源工具却弥补了这个缺憾。
这款开源工具的名字叫 LearnGitBranching ,目前在Github已经 26k+ Star,它或许不是最好的,但是在我看来它非常特别,而且对于理解Git命令有很大的帮助。
简单概括,LearnGitBranching是一款Git的可视化学习工具,它通过交互式的方式教授大家学习Git,并且提供一些列的挑战,能通过可视化及挑战帮助大家理解Git操作和命令。
学习者可以在交互页面输入各种命令,页面会动态的根据输入命令,以动画的方式展示输入命令之后的效果,下面可以看一个示例:
通过这种交互式的方式,可以帮助开发人员更加直观的理解每种操作对应的效果,对于加深对Git命令的理解很有帮助。
除了可视化、交互式的方式,它还提供了一些其他功能。
沙盒模式
默认情况下,应用程序以“沙盒模式”启动,并已创建基本存储库。在这里您可以输入命令并随心所欲地处理存储库。
你可以在沙盒里做如下操作:
- undo:撤消上一条命令的效果
- reset:从头开始
- git clone:模拟远程仓库
关卡
输入levels可以查看可用的课程/挑战,关卡里提供了从基础到高级、技术、技巧不同等级的教程和挑战,对于加深理解很有帮助。
除此之外,LearnGitBranching有一项git golf功能,它会跟踪解决每个调账使用了多少命令,可以更加直观的看到自己对Git的掌握程度。
关卡生成器
如果觉得默认提供的关卡不够,还可以使用 build level 命令构建关卡。
它会提供一个对话框将引导完成每个过程,我们可以提交这些关卡,也可以分享给其他同学。
传送门 :
Github地址 :
程序员宝藏库 : Jackpop/CS-Books-Store
建议大家有空可以多浏览Github,有很多好用的开源免费工具。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐Github上一个非常不错的项目《 DevWeekly 》,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章:
因为它如果真正好用的话,就不需要额外工具。
对于命令行用户,最需要的是它的命令行靠谱,而git在这方便其实跟hg与svn并没有什么本质不同。学习成本其实并不高(话说svn到hg的迁移成本其实相对低一些,git某些命令的定义跟svn/hg有点点不同,不过总的来说并不难适应)。
对于IDE用户,只要有git插件就行,为什么会需要一个额外的工具呢?
如果题主真的需要工具,拜托至少装个 vscode 或者 jb 全家桶用用,git 插件都可以用的。
git这玩意真没必要再搞额外的可视化工具,因为不支持git插件的编辑器甚至都不能算是个合格的程序员编辑器。既然大家都有,那它自己还做个独立的干嘛?
那么来说说git实际上好在哪?设计git是为了啥?
作者说过,git的设计的核心要素就两个字:性能。git是为大型软件仓库,在广域网上协作开发而设计的。
所以,对于仓库文件数量很大,容量极大,并且需要经常在广域网上协作开发,git被设计为在这些极端情况下具备更好的性能。而这就是Linux开发所需要的东西。git的好,就在于它对于大型软件仓库在速度不够快的公网上进行开发,还可以具备足够优秀的性能。