如何学习git是一门学问

最近一直在回忆学习git的一些过程,觉得很有意义,延伸出来就是如何学习计算机知识的一些思路,如果一个人从来没有接触过git或github,那么如何下手呢?

不管我们懂不懂git或github,首先要明白它们不是一回事,git可以认为是一个协议或者一个工具,主要工作是版本控制,git蕴含了很多优秀和灵活的工作流。

而github是基于git开发的一个分布式服务,相当于一个git服务器端,对于用户来说,自己就像一个客户端在和github服务器端交互,而且也不用担心文件会丢失。

github基于git开发了很多功能,这些功能主要是为了协作开发,比如 Fork、Issues,属于一种新的互联网开发模式,其核心在于工作流,所谓工作流就是有一定规模的团队,或者处于不同地方人的一种协作方式,更好的开发、协作、审查、分享、跟踪,让效率最大化。


通过上面描述,很清晰的看到git和github侧重点,有了github才让大家有更多学习git的动力,在学习github之前务必先掌握git,然后进行github的学习,这是我的第一个建议。磨刀不误砍柴工,掌握好git,再去学习github效果会更好。


第二个建议就是掌握git是必须的,学好git&github,不会立刻让你找到好工作,但绝对有用。开发语言、数据结构/网络这样的计算机基础知识的重要性不言而喻,属于硬技能,而git属于软技能,不一定能立刻提升你的水平,但绝对是加分项。


svn没有想象的那么差,大家不要妄自菲薄,这是我的第三个建议。相信大部分人都使用过svn,一个老牌的版本管理软件,其实我也没有热衷于学习git,因为svn虽然现在看上去很落伍,但本质上也能完成大部分任务,为什么一定要去学习git呢?这是我的一个疑惑,这是时代的产物。

有人说svn速度慢啊,不灵活啊,其实只要你熟练掌握svn,真觉得速度不是障碍,尤其对于规模不大的团队来说,我们公司现在还在用svn,只要把它的工作原理掌握透,其实还是非常不错的。

在学习的时候,还是要理性对待,不要学git的同时瞧不起svn。


另外学习到一定程度的时候,时刻比较下git和svn之间的差异,能够让你更好的理解,不要满足于对工具的使用,重点比较工作流之间的差别,这是我的第四个建议


git强调的是命令操作,核心了解分支、合并、提交等概念,但如果你在工作或者学习过程中,仅仅自己玩,很难真正掌握,

而github是工作流,这也是我们学习中的一个难点:你可能感觉自己git用的很不错了,但还是没能玩转github,原因就在于没有应用场景,就算是大公司,也不能强逼着套用一些复杂的工作流(也许是我的问题)。

第五个建议就是不要光学git命令,要更多的参与到github,比如给别人发个PR,提交个Issues,或者自己弄个开源的仓库,只有参与进去才能更好的掌握github(git)。


其实学git不仅仅是为了使用,要是能够了解其工作原理,对于掌握会更有好处,git的设计理念应该是很牛逼的(我不太懂),掌握的话就相当于掌握了优秀的算法设计。

以前总觉得学不得法,觉得理解不到正点上,后来看了《Git版本控制管理》第四章的时候,自己突然明白了很多,从整体上意识到git原来是这样存储的、这样设计的,后续再学的时候,就轻松了很多,这就是我的第六个建议,那就是尽量从原理层面去理解它,思考为什么是这样的。


我很喜欢收集git常用命令,然后记录下来,用的时候很方便,可后来发现git的命令及可用参数太多了,就算会用,也不一定理解啥含义,而且随着 git 版本的升级,某些参数的含义还有可能变化,这种使用 git 的方式感觉太残忍了。

无意当中在linux上man了下 git 的手册,发现里面讲的真详细啊,一些牛人写的git文章感觉就来于此,而且是最权威的,不会有模棱两可的含义。

从那以后,在学习过程中,我就有意无意看手册,在看书或文章的时候,也时不时的打开手册,印证下理解的对不对。

看手册是我的第七个建议,但手册确实挺晦涩的,如果没有耐心,很难看完,所以我也一直在找如何更好利用git手册的诀窍。


那么学习git有什么好的建议呢,第八个建议没有任何事情是简单的,大家都希望在很短的时间掌握git,希望走捷径,比如找个牛逼人写的牛逼教程,还希望教程内容不要太多,可世界上哪有那么多好的事情,相信我,如果你不实实在在的花时间,是很难好好掌握的,只有不断的摸索,实践、总结、尝试、犯错,最终才能找到合适的方法学习git,而且每个人的情况不一样,别人的经验不一定对你有用,一定要多花时间,看不到不要放弃,实在看不下去了,就第二天看,或者再过一周看,反正如果你没有三个月的时间,我觉得要正在掌握还是很难的。

在工作过程中,如果重度依赖git,那么在学习的过程中肯定会轻松不少,一方面是压力促使你学习,另外也有高手指点你。

如果你是自学,我觉得没有好的方法,至少我是这么认为的。

所谓好的方法,就是“通过你平时的积累,找到适合的方式,将这个学习时间缩短,同时也你能保证学习效果”。


git和github我也只学了点皮毛,这篇文章只是学习过程中的一个简单想法,代表阶段性的总结,后面还会继续学下去。

最后推荐几个学习资料吧:

  • 《Git版本控制管理》,至少要看完一本书。
  • https://github.com/geeeeeeeeek/git-recipes,还不错,主要翻译之 https://www.atlassian.com/git/tutorials。
  • https://github.com/git-tips/tips,常用的一些命令。
  • https://marklodato.github.io/visual-git-guide/index-en.html,图解git。

欢迎关注我的公众号(ID:yudadanwx,虞大胆的叽叽喳喳),一直在用心写。

你可能感兴趣的:(如何学习git是一门学问)