github的正确学习姿势

此前几年在公司一直使用svn做版本管理,但是说实话对svn的原理和命令也没什么了解。并且,由于svn是基于逐版本差异(diff)的数据存储方式,因此创建/合并分支也是经常遇到代码合不进来,丢代码的问题。

近几年github越发流行,公司也逐步准备git取代svn了,git基于快照原理的存储虽然浪费磁盘空间但使得合并的复杂度和耗时都降低了。

之前也看了一些介绍git的教程,说真的都没把核心问题说明白,要么就是罗列命令,要么就是一头扎进git的实现原理(一头雾水),看了和没看一样稀里糊涂。

学习方法

如果你也想学git,并且看了一堆教程稀里糊涂,那么我真的推荐这个教程:廖雪峰的git教程,看完之后对git的使用就十有八九了,立即投入工作也不会糊涂了。

这里面最核心的概念就是分支了,我认为理解这个章节:创建与合并分支 里的几个动画背后的原理,git使用就不会迷茫了。

我个人总结,多次commit构成的时间线就是一个分支,从老的分支上创建新的分支就像树枝开一个新叉一样,新的分支和老的分支共用一段老的时间线,而新的时间线则彼此独立。分支合并的时候,就是把从分叉之后的差异代码合并进来,通过可视化的GUI可以更简单的理解,下面将会提到。

安装GUI

安装gui桌面客户端,一方面可以很方便的进行基本的git操作,最重要的是可以看到分支的合并路线。

这里,我选择了一个不错的GUI叫做sourcetree,它支持常用的git操作如:提交代码,推/拉远程分支,创建分支,合并分支,切换分支。

qq20161026-02x

左侧”分支”部分,双击可以实现git branch 切换分支的功能,当处于不同分支时看到的时间线也是不同的,从而很方便的管理分支合并。

左侧”远端”部分,也可以看到远程仓库(我这里是github)上的分支列表。

上面的一系列按钮可以实现本地仓库和远程仓库管理,都很方便。结合命令行的git基本操作,可以满足日常开发的基本需求。

发表评论

电子邮件地址不会被公开。