在《哆啦A梦》动画片里,大雄一不爽就跳到抽屉时光机,穿越时空去修改历史;在《夏洛特烦恼》影片中,夏洛梦里回到过去利用历史成为红人,追到心爱的女孩……从小我就有个穿越的梦啊。言归正传,说说今天的主角——Git。Git对于电脑文件工作者来说,就和时光机一样,可以让你回到特定的时间节点,查看当时的文件版本或者救回不小心删掉的文件。我在学习了一阵子Git后有了一点小心得,于是把它写成专栏的形式给需要学习Git的人。噢对了,也为了自己以后忘了回来翻阅(我这个人太容易忘知识了)。
谁适合看这个专栏?
只要你对Git这个文件时光机有兴趣,并且有一台电脑(任何操作系统)。
什么是Git?
如果去搜索,大概得到的答案是「Git是一种分布式的版本控制系统」,这个对新手来说还是搞不清楚是什么嘛……其实,无论你是不是程序员,只要你和电脑打交道,就会处理文件,并且频繁地使用增加、修改、删除等行为。假设你是一名即将毕业的大四生或者研究生,你可能有个这样的文件夹:
这可能是我们最常管理文件版本的方式——复制一份然后在副本中写和修改。虽然用肉眼可能分辨得出每个文件的用途(如果你有良好的命名习惯,上面 这个肯定不行),但是你能讲出其中两个文件之间具体有哪些差异吗?最麻烦的是,如果文件是多人合作的,有时候可能无心可能有意地修改或者覆盖了一些片段,要想知道这些修改是出自谁之手,难呦……(也许是小明改的,但是他早就忘记了!)
如果你在意这些问题并想解决它,Git可以帮助你。不但可以把文件整理的井井有条,而且有Git帮你记录这些历史,不用再怕出了事自己背黑锅了!(进了社会工作,职场如战场啊……)
Git的优点
版本控制的工具不止Git,但它能脱颖而出是因为:
- 免费。而且是开源。有意思的是Git本身的程序代码也是用Git来进行版本控制的。
- 速度快,版本体积小。你的「复制粘贴大法」,每次会增加一倍的内存,但是git大多记录的是每个版本的差异(模糊地讲),自然速度快体积小。
- 分布式。简单的讲就是你可以在没有网络的时候在自己的电脑上就可以进行。很多别的版本控制系统都需要一台服务器来上传。
常见问题
- 我是修图的,我的文件大多是PSD文件,我不是程序员可以用Git吗?
Git并不能说是程序员的专属技能,这应该是任何在电脑上工作的人,都最好掌握的技能。理论上一切可以在电脑上以bit被储存的工作,都应该鼓励git的使用,比如:程序开发,作家,文员,音乐工作者,绘画工作者,等等。当然,程序代码是最适合的之一。对于PSD文件,每次修改后其实是一群操作,Git没办法精确地分辨出两次版本的到底修改了哪个字(对于文本是可以的)。但是至少可以在删除或者死机的时候可以找回想要的版本(那个时候的状态),以及可以记录每次修改的作者。
- 我听过GitHub……是一回事吗?
Git是一个版本控制软件。GitHub是一个网站,它可以接收有Git控制的文件从而在网站上与人共享,有点像“云盘”。你可以在自己的本地工作,如果想上传到“云端”保存,就Push到GitHub上就行了,当然不上传也是OK的。上传到GitHub默认是公开的,一般认为的意思是给人分享,或者是让别人帮忙修改你的工作。也可以设置为私人,以前是收费的,现在已经免费了。
好了,如果你感兴趣,就继续看下一节吧!