您的位置:首页 > 其它

Git的使用

2016-06-22 18:28 169 查看
我们就以Github为例

简单来说Git可以分为以下几点:



接下来我们就进行GitHub服务端创建

1、首先你要有一个Github账号 

2、一般我们使用的git管理工具都是SourceTree

SourceTree是客户端的版本控制工具,是一个又Git命令组合而成的可视化工具,支持创建、克隆、提交、push、pull、和合并等操作

然后我们需要在github上创建自己的仓库





项目过滤文件清单: 配置哪些文件不用上传到GitHub服务器,通常以文件类型区分。(我们用cocoapods时只需要上传podfile就行了,不需要上传pods文件夹中的文件了,我们就在这个过滤文件中添加一个 ‘/pod’, 这样上传项目代码时就不会上传第三方代码了。)

ssh clone url: 本仓库的克隆地址,以后可以通过这个地址把项目clone到本地。

做完这些以后我们就可以进行客户端的配置了

克隆仓库 (与之前创建的仓库建立联系)打开SourceTree,点击 ‘+ New Repository’ 然后选择 ‘Clone from URL’(不同版本略有不同) 



操作面板简介



然后新建一个工程 将工程中的文件 拉倒我们创建好的Git文件夹中

回到SourceTree



       其中 2   是未暂存区,如果添加或者修改了一个文件,该文件暂时不会 被git系统管理,这些文件放 在未暂存区。在这儿里勾选一个文件后, 会将文件移到暂存区。 

        其中 3  是暂存区。如果一个文件被git系统管理,但是尚未被系统登记 在案就会处在暂存区。未暂存区的 文件想要被git记录就必须先进入 暂存区。 

主要使用步骤:

1、需要git管理的文件,从未暂存区选到暂存区(某些版本勾选就会自动变化)

2、点击commit(要填写提交信息),将暂存区的文件保存到git仓库中,文 件的修改记录才会保存到本地git仓库中

3.、将本地提交的文件变更信息提交到远程服务器中的仓库(push) 





说白了 就是 上传和提交的过程  

主要说的是在开发团队中我们是怎样使用的

  Git作为最强大的分布式版本控制系统,支持多人共同开发

  GitHub为开发者提供了非常友好的增加成员方法。 

点击右侧的settings





       成功添加进入项目的开发者,按照之前SourcesTree的配置方法再来一遍即可。

       我们现在假设你的伙伴修改了项目中的”ReadMe”文件,然后他 将修改后的文件Push到了GitHub中。我们该如何得知这一修改




第四点 就是 分支

1、以上的操作都是在一个master分支上操作的,也就是我们一直在 操作master分支,这样管理起来非常的不方便,代码也比较容易 混乱。 

2、为了不污染我们的主分支,我们一般都拷贝一个master的副本(创 建分支),然后修改副本的代码,这样我们一直操作的就不是 master分支,而是master分支的副本了。 

3、我们将这个副本分支称之为”子分支”。

点击Git  Flow



创建分支:

1. develop : 创建一个develop分支,在develop分支上进行开发

2. feature : 然后在develop上附属创建一些特性分支,比比如我们可 以为登陆功能创建一个login分支,为注册功能创建一个register分支, 为用户管 理创建一个user分支,这些功能分支都属于feature分支

3. release : 我们每次产品发布时都会将代码更新到master上进行打 包上传,然后更新打包代码到release分支上,这样就可以在以后只查 看释放 分支来查看每次上线时产品的代码了.

4. hotfix : 在代码更新到master分支后,突然发现代码中有bug,这是 我们直接创建一个热修复分支,改完这个bug后立即更新到master分 支了. 

再次点击git flow创建功能分支:



点击git Flow创建功能分支



我们可以用同样的方法为不同的功能模块创建多个分支



分支切换 

切换分支的操作十分简单,只需要双击想要切换的分支即可。 

切换成功后,本地工程中代码即切换到了相应的版本。 



假如我们的login分支已经完成,现要将该分支合并到开发者分支中去:



注意:这个删除还是保留分支,如果删掉分支,以后就查不到这个分支

如果保留分支,下次仍能查看该分支。 

团队开发过程中我们会遇到很多问题

在团队开发中,多人同时对某一个文件进行改写的情况非常常见。 同步代码的过程中,git会自动检查冲突,并尝试进行"自动合并 "。 

自动合并并非万能,有很多情况,自动合并并不能区分用户的真正意图。 

 比如:用户A将变量名改为 myLabel1 ,并提交到Git; 用户B在未拉取的情况下,将变量名改为 mylabel2并且 提交。那么就会产生冲突。 

下面我们将构造一个冲突,并且尝试解决它。我们假设如下情形: 用户A将ViewController.h中一个UILabel变量名更名为”huhu3”, 之后提交到Git。 

用户B在未拉取的情况下将ViewController.h中的UILabel变量更 名为”huhu4”。当用户B提交至Git时,既发生冲突。 

用户B推送更改时,会弹出提示框 报冲突

冲突一旦产生,SourceTree会为我们报出到底是哪个文件出现冲突 会在冲突的文件后面标注!号

处理的方法 我们也有多种途径 

1、使用他人的版本

2、使用自己的版本

3、进行手工合并









针对手工合并代码冲突来说 

多数情况, 冲突的产生并非靠覆盖掉对方的版本为最终目的, 如果双方的代码量较大,直接覆盖对方就显得太残酷。 

  我们可以选择”手工合并”代码的方式, 来比对二人到底在这个文 件中,哪一行(或者哪一块)产生了冲突,我们解决冲突的部分, 然后让Git自动帮我们合并没有冲突的部分,达到皆大欢喜的结 局。 

在次 我要推荐一个软件

手动合并冲突代码,需要找到哪一部分代码产生了冲突,在比对 文件时,我们通常借助第三方的文件比对软件来帮我们寻找。 

这里推荐BeyondCompare。

下载地址: http://www.scootersoftware.com/download. href="http://lib.csdn.net/base/php" target=_blank>PHP 

需要注意的是 不管是选择任何一种策略,都要重新提交一次本地变更

 在使用Git的时候不要怕出错 多多使用才会越来月熟练。

最后推荐一个有关git的博客 对GIt不太了解的朋友可以看看 学习下
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/
【链接】在Xcode中使用Git进行源码版本控制
http://www.cocoachina.com/ href="http://lib.csdn.net/base/swift" target=_blank>iOS/20140524/8536.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Git的使用