48

如何学习 Git 是一门学问

 5 years ago
source link: https://mp.weixin.qq.com/s/dvYEjjmAh9H4xxEInodBqw?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

IBJNNfe.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK