ios使用自带git respository管理项目

来源:互联网 发布:所有的网络射击游戏 编辑:程序博客网 时间:2024/04/29 18:23

888

最近突然感兴趣于研究一下apple自带的git库管理ios源码,目前有一些浅显的了解,网上相关的中文介绍不是太多,所以写下来分享一下,一来可以记录,二来可以以后发现问题再来扩充。



在创建工程时,会有这样一个选项,当我们勾选上后,Xcode就会为我们的工程创建一个隐藏的git库,每当代码有更改时,提交更新后就会添加到git库中,类似于我们的svn。



好了,现在开始体验!


项目创建好后,git库会为我们默认initall添加一个基础版本。

具体查看办法:Xcode右上角Organizer按钮---Repositories标签页,在左边导航栏找到自己的项目,如下图所示。


这就是为我们默认提交的一份代码。



接下来我们给工程中新添加一个文件:firstViewController,你会看到新添加的文件后有 字母 A 标示, 它代表着这是一个新添加的内容。字母 M 代表 修改过的内容。

File-Source Control 可以看一下列出的几个常用功能,我们提交更新,撤销更新,合并分支都是在这里打开,下图中都标了出来。




接下来我们点击Commit,看看有什么新奇的页面展示,确实很强大,左边给我们列出了添加或修改的文件,右边是对比图,那个地方进行了修改(添加),是不是比svn更绚丽一些?由于我是新添加的文件,apple给我们标示:File was added。

【若要提交更新,点右下角的按钮,注意,必须要为此次更新写上说明文字,这真是一个很好的习惯,apple强制我们来做】



如果之后没有任何error提示,就是更新成功,我迫不及待的打开Organizer看一下有什么变化。



果然有一个新的条目,点击View Changes按钮可以查看详细的更改。



Discard Changes操作:比如我们刚刚进行一项棘手的修改,并且我们的代码很多,找起来很麻烦,我们后悔了,想恢复到最近的一个良好的版本,使用这个功能吧,很简单,如下图所示。


当代码有修改后,菜单的Discard Changes才会可被点击状态。


接下来我们继续给firstViewController添加一个方法,然后准备提交,看看那个对比修改的效果:


上图清楚的展示了我们这次提交的版本所作的所有操作,左边视图是修改后的内容(也就是现在的版本),右边视图是之前的版本内容。中间的链接按钮有两个选项供我们选择:

Dont`Commit 是这个区域的修改(添加)本次不提交,也就是说,现在的项目有这个修改的代码,而git库中不保存此次修改。

Discard Change是删除这个区域的修改,也就是说,现在的项目没有了修改的代码,git库中更新后也不会有这些代码,相当于完全删除。


另一项新功能介绍,由Xcode 4.5,允许你提交你的更改到一个特定的分支。
但是,且慢 - 什么是分支?
其实,相信与否,你已经在使用的一个分支。当它第一次创建时,你的项目关联的一个分支,称为“主”。由Xcode会自动创建这个分支,正如它的名字表明你的项目,是主要的分支。
“但是,什么是一个主要分支?”,你可能会问。嗯,好吧。来看看下面的图片:



接下来,我们再此给viewcontroller添加一个方法,尝试一下给把修改后代码添加到git库的一个分支中,具体添加方法如下图所示。



添加成功后,你和我也一样,迫不及待的想去Organizer中查看git库的变化对吗?好,看下图。


我们在branch1栏下可以清楚的看到,系统在master主分支的基础上,连同我们这次修改的版本一同添加到了分支库中,很强大吧,这样我们就可以把一些不确定的更改在分支中进行了,这样万一崩溃了,还有主分支可以恢复。


由于我们进行了一些错误的操作,导致当前代码崩溃,修改起来费时费力,那么,让我们就尝试一下切换到之前的主分支代码库的版本中来吧。如下图:


SwitchBranch可以很方便的让我们在主和分支中切换。注意,切换后,相应的不同分支修改的代码也会在项目中消失。



看完分支操作,大家可能还会想到,是否有合并的操作呢?我在一个分支中进行了大量的修改,然后发现这就是我想要的最终版本,可是我想把这些合并到主分支中来,该如何操作呢?


【注意:只有当我们创建分支库后,并在项目中进行了某些修改(添加)操作后,菜单Merge才会生效】



成功合并后的效果一定是你想要的,在这里我就不再发图展示了,只有自己亲手尝试了,才会明白,不要害怕尝试,可以新创建一个Demo来测试。



接下来我再发一下另一个新奇的操作,当我们在工程进行某些修改后,不只是在提交时次才能看到对比修改内容,还有个地方可以给我们更直观的展示:


这个时光轴真的很炫,不得不佩服apple的创新能力,具体使用效果,需要你自己来验证。


最后发一张blame模式下的展示:




【end............】



好了,我已经进行了简单的常用功能截图介绍,有关更复杂和原理性的知识,我目前也不会,需要使用来验证,有更新的收获时再来这里更新吧。



0 0
原创粉丝点击