1.基本概念
![](https://i-blog.csdnimg.cn/blog_migrate/eab9fbd01f78997e83082531fa22265e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/01080c362ee3621f26744de038c6b97d.png)
- 版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。
- 更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。
- 把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
- 支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
- 分布式版本库,无单点故障,内容完整性好。内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
3.Git的使用
Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。
Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作`‘索引’',不过一般说法还是叫暂存区域。
基本的 Git 工作流程如下:
-
在工作目录中修改文件。
-
暂存文件,将文件的快照放入暂存区域。
-
提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
如果 Git 目录中保存着的特定版本文件,就属于已提交状态。 如果作了修改并已放入暂存区域,就属于已暂存状态。 如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。
官方使用的是Git命令行,然而从来没接触过的人命令行玩的不溜,影响了正常开发;所以在这里我推荐一个图形化的工具----SourceTree
1.下载对应系统版本的git.exe并安装(我的是windows-bit),在桌面右键出现下面两个选项,说明安装成功了
2.下载SourceTree并且安装
3.服务器与本地仓库对应关系的建立
首先,在AndoridStudio创建一个空的项目,copy一下路径,然后在SourceTree工具里这样操作
点击创建,然后点击仓库-项目设置
开始配置服务器地址
别忘了在高级里填一下个人信息,这样的话本地仓库与服务器的对应关系就建立起来了
4.代码的更新与提交
和SVN一样,我们需要先获取服务器的信息,拉取里面的版本,然后再提交
工具很直观,不细说,操作很简单
5.冲突的解决
解决冲突的方法基本和svn类似;发现冲突,可以直接在SourceTree里操作,当然我们也可以到AS里去操作(根据冲突标志符号选择是否合并),然后右键标记为解决冲突,然后提交,推送,OK!
显示你的分支解决了一个冲突,并合并进来.
是不是很简单,利用SourceTree这个Git的图形化工具可以很淡定的进行版本控制,不用再去面对黑框框输难记的命令行.