序
- Git相对于SVN多了很多新概念,用起来不难但想完全掌握需要花些功夫的
- Git现在是各大互联网公司的主流代码管理工具,曾经面试时因为没有过多接触Git而被面试官鄙视
- 故认真学习,撰写笔记
常见术语
- Git:git本体 + 命令行,要用就得装,Linux、mac、Windows均支持。装好后Linux和mac直接在shell敲命令行,Windows上的git运行在MINGW(Minimalist GNU for Windows)环境。如下:
*
Git-gui:Git官方出品的图形化工具,一般好用,主题挺多的。
- GitLab:开源的远程托管库 + web管理应用,就是能自己随便搭建的远程库,公司内部代码托管就用这个
- GitHub(世界上最大的同性交友网站):最出名的代码托管库,开源项目圣地,现在已经不只托管代码了,很多大神用它写博客,当网盘用。
另:前段时间,notepad++项目,其作者在项目issues发表了针对中国的不良言论,还有很多TW地区的人妄加评论,不过相关的讨论已及时删除了,这点让人很气愤,这帮孙子如果不收敛,Github可是有被墙的风险啊- GitHub Desktop:GitHub官方出品的图形化客户端(IOS版已经有了)
- 国内比较好的托管站点:马云,coding.net,开源中国,CSDN
Git的优势
- Git是分布式,装有Git的每个机器都是一个版本库,版本变更了在本地提交就算数。远程服务器上只是中心库。
- SVN则是传统集中式,所有改动都要提交到远程才算数。
- Git大部分操作基本在本地即可完成,没网的时候也能提交、回退、创建、切换分支。只有在自己团队的代码准备合并主分支时才会用到远程库。(高铁上写代码也OK!)
- 分支管理更方便,切换及合并起来比SVN方便多了,还有很多高级玩法,还在学习。
Git相比于SVN的区别
- SVN只记录差异变化,如果本次提交某个文件没动,SVN则不记录,只关心谁变了,变得什么。
- Git则记录快照:即使某个文件没变化,Git也会在每个版本保存这个文件的快照。
Git使用方式
- 通过命令行或GUI的方式,在实际开发时一般使用GUI(包括各IDE内嵌的Git插件),但是想完全掌握Git,还是需要好好敲敲命令行
- 对于mac来说,通过改造shell来更爽的支持Git:安装iTerm2、oh my sh以及powerline,敲命令时tab键会有联想补全