Git使用

1.基本概念

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。[1]  Git的读音为/gɪt/。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。[2]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
 
2.Git相对于SVN的优势
集中式版本控制系统(SVN采用的方式)
 
 
 
 
分布式版本控制系统(Git采用的方式)
 
Git是分布式SCM,而SVN是基于服务器的,也就是说每个开发者本地都有一套git库,每个人维护自己的版本(或者合并其他人的版本),而SVN是每个人写完代码后都及时的checkin到服务器上,进行合并。
  1. 版本库本地化,支持离线提交,相对独立不影响协同开发每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。
  2. 更少的“仓库污染”git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。
  3. 把内容按元数据方式存储,完整克隆版本库所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
  4. 支持快速切换分支方便合并,比较合并性能好在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
  5. 分布式版本库,无单点故障,内容完整性好内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

3.Git的使用

 Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。

Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。

工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。

暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作`‘索引’',不过一般说法还是叫暂存区域。

基本的 Git 工作流程如下

  1. 在工作目录中修改文件。

  2. 暂存文件,将文件的快照放入暂存区域。

  3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。

如果 Git 目录中保存着的特定版本文件,就属于已提交状态。 如果作了修改并已放入暂存区域,就属于已暂存状态。 如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。

官方使用的是Git命令行,然而从来没接触过的人命令行玩的不溜,影响了正常开发;所以在这里我推荐一个图形化的工具----SourceTree

1.下载对应系统版本的git.exe并安装(我的是windows-bit),在桌面右键出现下面两个选项,说明安装成功了

2.下载SourceTree并且安装

3.服务器与本地仓库对应关系的建立

首先,在AndoridStudio创建一个空的项目,copy一下路径,然后在SourceTree工具里这样操作

点击创建,然后点击仓库-项目设置

开始配置服务器地址

别忘了在高级里填一下个人信息,这样的话本地仓库与服务器的对应关系就建立起来了

4.代码的更新与提交

和SVN一样,我们需要先获取服务器的信息,拉取里面的版本,然后再提交

工具很直观,不细说,操作很简单

5.冲突的解决

解决冲突的方法基本和svn类似;发现冲突,可以直接在SourceTree里操作,当然我们也可以到AS里去操作(根据冲突标志符号选择是否合并),然后右键标记为解决冲突,然后提交,推送,OK!

显示你的分支解决了一个冲突,并合并进来.

是不是很简单,利用SourceTree这个Git的图形化工具可以很淡定的进行版本控制,不用再去面对黑框框输难记的命令行.

原文地址:https://www.cnblogs.com/fuyaozhishang/p/6507390.html