最近一直在回忆学习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,虞大胆的叽叽喳喳),一直在用心写。
网友评论