本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布
因为最近有学弟请教Git的知识,在教的时候发现总觉得零零散散的,于是整理了一下,写成了这篇博客。
这里先推荐几个学习Git的网址,希望能帮到大家!
这篇文章会从Git的配置开始,用命令行的方式介绍Git中的各个功能,在每一个知识点之后,附带了对应功能在Android Studio的图形界面中的操作方式。因为文章有点长,我把它分为了四部分。
- Git的点点滴滴,附带Android Studio中的操作(一):序。对文章的介绍和对Git的介绍。
- Git的点点滴滴,附带Android Studio中的操作(二):用Git备份代码。介绍GIt的各种基础操作。
- Git的点点滴滴,附带Android Studio中的操作(三):Git中的分支。介绍Git分支的原理和各种分支操作。
- Git的点点滴滴,附带Android Studio中的操作(四):用Git进行协同开发。介绍了两个协同开发时的技巧。
一 Git简介
01 版本控制系统的作用
版本控制系统的功能主要有三个。
- 备份代码。很常见的,今天的工作做完了,提交一下,明天改了改,发现还没昨天的好,使用Git的话,直接回退到上一个版本即可,再也不需要手动分日期保存代码了。爱玩游戏的同学,可以发现这和游戏里的存档功能很像。
- 在多人合作开发时,同步并合并对代码的修改。多个人开发的时候,小明开发了一个功能,小红开发了一个功能,他们需要把各自的功能合并到一起。于是小明先要把自己的代码发给小红,小红把自己要的代码挑出来,合并到自己的代码里(合并的过程真的很麻烦),然后把整个代码再发回给小明,然后继续开发。上述操作通过Git的指令可以自动完成,十分简便。
- 方便项目开发的管理。比如说,在开发下一个版本的同时,可以在前一个版本的基础上修复bug,使用Git可以使这两个工作互不干扰。再比如说,软件出bug了,通过Git可以诊断出是谁在哪次提交上引入了这个bug,方便分锅哇。
注意一下,并不是只能管理代码,word文档,图片,设计稿之类的东西都是可以管理的。
02 Git的诞生
Git是在Linux内核开源项目的维护工作中诞生的,于2005年。父亲是Linux之父Linus Torvalds,从亲缘关系上讲,Git是Linux的弟弟。
那个时候的情况是这个样子的!因为Linux是一款自由软件(具体什么是自由软件,请出门百度),开源,免费,而且谁都可以参与项目开发,所以吸引了一大批牛掰的程序员,他们修改Linux源码,将自己的代码发给Linus,再由Linus将代码合并到Linux内核中去。由于参与者非常多,代码的维护非常繁琐。所以在2002年的时候,启用了一个叫做BitKeeper的分布式版本控制系统。
BitKeeper是一个商业软件,是付费的,不过出于人道主义精神,BitKeeper所属的公司授予了Linux社区免费使用BitKeeper的权限。但是在2005年的时候,由于Andrew Tridgell(Samba的开发者)违反BitKeeper的使用原则,对BitKeeper开始进行逆向工程,使Linux社区失去了免费使用BitKeeper的权限。
然后重点来了,Linus在失去BitKeeper的支持后,根据他对BitKeeper的理解,并综合了当时版本控制系统的一些缺陷,花了一两个星期,用C语言写出了Git!