iOS-在Xcode中使用Git进行源码版本控制(一:Git源)

来源:互联网 发布:天赋宝宝炼化软件 编辑:程序博客网 时间:2024/05/23 21:19

原文作者myshire 

原文地址在Xcode中使用Git进行源码版本控制


在应用程序开发过程中,很重要的一部分工作就是如何进行源码的版本控制。当代码出现问题时,我们就需要将代码恢复到原先正常的版本。如果是多个人共同开发一个项目,那么代码的控制就会非常复杂。幸运的是,开发者不需要自己控制这些,因为有专门的软件来负责,叫做版本控制系统。


版本控制系统,或者说修改控制系统,实际上是一种检测源文件的改变并将其保存留作以后参考使用的机制(软件)。此外,它还能记录其他有用信息,比如是哪个开发者修改了代码,何时修改的,修改了哪一部分,以及其他历史信息。版本控制系统可以比较不同版本代码的不同,有必要时能恢复整个项目到以前的版本,追踪有害代码从而减少产品的错误。


通过版本控制系统,开发者可以在一个项目的不同分支上工作,当项目的各个部分开发完备时,将它们放到一起形成最终的版本,这个过程被称为合并。事实上,这种做法再团队和软件公司中相当常见:每个人负责项目的一部分,最终所有部分被整合到一起形成最终产品。


 对于个人开发者来说,版本控制系统并不是必需的,但是我们仍然强烈推荐开发者使用它,因为它可以使代码方便的在有错误的版本和可以工作的版本之间转换。事实上,很多开发者从来不使用类似的工具,他们会在项目添加新的功能时手动保存原先的项目。这其实是一个很不好的习惯,因为版本控制软件可以更好更高效地完成这项任务。


 Git是一个常见的版本控制系统,它最开始是由Liunx之父Linus Torvalds开发的,Git使用虚拟目录,又称为repositories,来管理一切事物。Git可以通过命令行调用,也有专门为它设计的桌面应用软件。如果Git对你来说很陌生,我建议你在网上查看一些它的相关信息。关于Git更深层次的内容都不在本文的讨论范围之内。


 从Xcode5开始引入了使用git的一些新特性。它将git的各项功能整合到一个菜单中,并提供子菜单来进行软件合并的控制。在接下来的阅读中你会发现,使用git来进行版本控制相当的简单快捷。


 我们接下来的任务就是学习如何在Xcode中使用git,以及Xcode是如何整合Git的各项功能。如果你觉得对这些很陌生,我建议你先上网搜索一下相关的内容。在接下来的教程中,我会假定你已经了解了版本控制系统和git是什么,并将注意力集中在Xcode如何管理它上。


GIT Demo概述(GIT Demo Overview)

与其他教程中的demo app不同,这次我们不会去实现一个应用来演示某一项iOS SDK特性,最终我们也不会产生一个示例产品。实际上,我们会新建一个demo工程,写几行代码,然后利用这个工程来演示Xcode提供的版本管理功能。换句话说,我们会集中注意里于IDE上,而不是iOS本身。


 我建议你跟着我一起一步一步实现这个实例项目,在相应的地方手动添加代码,不用担心,代码量不是很多。跟着教程的步骤,我们将执行多种重复的版本控制相关的操作,并且我们必须实时看到结果。如果我只是提供了一个具备所有操作的的应用,那么你无法体会到这些改变。


 好了,废话不多说了,让我们仔细看看使用Xcode进行版本控制的要点吧。

创建一个Git源(Creating a Git repository)


每次在Xcode中创建新工程的时候,都会提示开发者是否将项目作为一个本地的git源。在创建工程的最后一步Xcode会有一个复选框,如果选择了它,git源就会被添加到工程目录中。通常这个选项会被忽视,或是被认为是Xcode的另外一个没用的功能,尤其是从未用过git的开发者,或是编程新手。


 打开Xcode,创建一个新的工程。选择iOS区的“Application”,在应用模板页选择“Single View Application”。



选择下一步,在项目名中输入GitDemo,确保下面的Devices菜单选择iPhone,无需iPad或者universal app。



点击下一步,也就是最后一个步骤,在这里先选择一个要保持工程的目录,然后在窗口底部选上Create git repository on (My Mac ):



默认情况下,这个选项是被选上的,如果你不想使用git,你可以取消它,但是我不建议这么做。本教程中,你需要将它勾选上,然后点击创建按钮。

 

创建完项目之后,打开Finder,找到项目存储的目录,在目录中,有一个.git的子目录,时Xcode为存储git源相关数据自动创建的。



如果你看不到.git目录,你需要让隐藏的文件可见。具体做法就是打开一个Terminal窗口,输入以下命令:


对于OS X Mavericks 10.9:

  1. defaults write com.apple.finder AppleShowAllFiles TRUE  

对于以前的OS X版本,

  1. efaults write com.apple.Finder AppleShowAllFiles TRUE   

为了重启Finder应用,输入

  1. killall Finder  


这就是本项目在本地git源保存的位置。实际上,如果你选上了相应的选项,这个目录就会被创建。相应地,在你创建新应用时,.git子目录也会一同被创建。


 显然使用Xcode创建一个git源毫不费力,然而,如果你在项目创建时未创建git源,之后又想加上这个功能怎么办呢?好吧,其实你可以在任何时候为你的项目创建源,但是不是使用Xcode。尽管这种情况很少发生,我还是会告诉你该怎么做。


如果你愿意的话,你可以直接跳到本教程的下一部分。我建议你接着读下去,因为接下来这些信息还是很有用的。


在进行演示前,你需要首先通过Xcode下载Command Line Tools,因为我们要在Terminal下操作,并且需要一些额外的工具。如果你还没有下载,那就去Xcode>Preferences…菜单,选择Download选项卡,展开Components区,点击Commond Line Tools右边下载按钮。下载完成后,一个对勾符号会取代下载按钮。

 

现在,为这个例子再创建一个工程,完事后可以删了它。在创建时取消那个创建git源的选项。这次我们不想让Xcode为我们准备一个源。把这个工程命名为NoGitExample,保存到桌面,然后你可以跟我接下来输入的命令一样。


一切准备妥当后,打开Terminal窗口(如果你之前打开了一个,那就先关掉它再重启,从而使我们安装的命令行工具生效)。下面切换到新项目的目录:

  1. cd /Users/YOUR-USERNAME/Desktop/NoGitExample  

别忘了在上边命令中设置Mac的用户名,接下来,输入:

  1. git init  

 这会初始化一个空的源,如果你在Finder里面查看或是输入ls命令,你会看到.git子目录已经被创建,很好,接下来输入:

  1. git add .  

这样,当前目录所有的内容就被添加到源里面去了,最后,输入以下命令:

  1. git commit -m 'Initial commit'  


接下来会出现一个本地git源所执行的改变列表,如下图所示:


现在git源就建好了,但是如果你回到Xcode,打开Source Control菜单,你会发现一切仍然是被禁用。



这是因为当我们使用命令行工具创建git源时,Xcode并未被通知,下面点击Xcode>Quit Xcode,然后重新启动它,在NoGitExample项目中,如果你再次打开Source Control菜单,你会发现所有的选项已经被使能了,就像一开始勾选上创建git源一样。



现在这个项目的使命已经结束,你可以在桌面上删除它。


现在你知道如何为你所有的项目添加git源了,即使你在创建时没有添加,你也可以在以后任何时候为它手动添加源。

1 0