简介
Git 是目前世界上最先进的分布式版本控制系统。对应的是以SVN为代表的集中式控制系统。
集中式(SVN) | 分布式(Git) | |
---|---|---|
是否有中央服务器 | 有。开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送给中央服务器。因此脱离服务器开发者是几乎无法工作的 | 没有中央服务器,开发人员本地都有 Local Repository |
网络依赖 | 必须要联网才能工作,而且对网络的依赖性较强,如果推送的文件比较大而且网络状况欠佳,则提交文件的速度会受到很大的限制。 | 分布式在没有网络的情况下也可以执行commit、查看版本提交记录、以及分支操作,在有网络的情况下执行 push 到 Remote Repository。 |
文件存储格式 | 按照原始文件存储,体积较大 | 按照元数据方式存储,体积很小 |
是否有版本号 | 有 | 没有 |
分支操作的影响 | 创建新的分支则所有的人都会拥有和你一样的分支 | 分支操作不会影响其他开发人员 |
提交 | 提交的文件会直接记录到中央版本库 | 提交是本地操作,需要执行push操作才会到主要版本库 |
安装
1 | // 检查电脑是否安装 git (Mac OS) |
使用Mac做开发,有两种安装Git的方法。
一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Source Control”,选择安装。
创建版本库
版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
1 | // 先选择一个合适的文件夹(目录) |
使用
1 | // 把修改的文件提交到仓库暂存区,可反复多次使用,添加多个文件 |
自定义设置
1 | // Git显示颜色 |
在Git工作区的根目录下创建一个特殊的.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。.gitignore
文件本身要放到版本库里,并且可以对.gitignore
做版本管理
忽略文件的原则是:
- 忽略操作系统自动生成的文件,比如缩略图等;
- 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的
.class
文件; - 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
配置Git的时候,加上--global
是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
每个仓库的Git配置文件都放在.git/config
文件中:
别名就在[alias]
后面,要删除别名,直接把对应的行删掉即可。
1 | $ cat .git/config |
而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig
中:
1 | $ cat .gitconfig |