Sunday, April 29, 2012

使用git作为XCODE的原码库

斯坦福大学的2011冬季iOS开放公共课程中有一课是讲解如何设置和使用git作为XCODE的原码库。这里将我使用的过程在此作为一个记录。

Paul老师在这一课程中以一个具体的实例介绍了如何使用git作为XCODE的原码管理库。首先,退出XCODE,然后打开Terminal终端程序,下面的过程是以一个project为例子,建立相应的原码管理库。

git是一UNIX公共工具,苹果原机就带有这个工具。但是我最初在终端中无法使用git,结果我发现它在/usr/local/git/中,我在path加了这个路径之后,git就可以使用了。

设置 git 原码库


Paul老师指出,在XCODE project中有一个文件是存放有关XCODE用户界面的信息,这个文件与原码几乎没有关系,因此不需要将这个文件存入原码库。他以这个例子演示如何排除一些文件。这个文件的名字是一个类似xxx.xcuserstate的名字。在终端里,可以用下面的指令找到这个文件:

$ cd ~/myprojectpath
$ find .


确定文件名字之后,用下面的指令排除该文件:

$ echo xxx.xcuserstate > .gitignore

初始化git,将project的所有文件存入原码库的指令是 (这里假设原码文件都在当前的文件夹子里):

$ git init
$ git add .


上面的改变需要使用commit指令进行确定(指令中的-m参数是用来加用户注释):

$ git commit -m "This is my source code repository with first check-in"

现在原码库就设定好了。该课程接着介绍了如何在XCODE中使用git来存放不断编写过程的原码,比较不同时间原码的变化区别,以及如何创建分支等。

 重新设置原码库


我使用git两天之后,我曾经出现一次错误,这个错误使得我无法存放新改变的原码。我也不清楚是何因造成的。我记得是加了一个数据库模,之后改变了模的名字,结果git无法存放我们的数据模,错误信息是无法在库中找到原数据模的文件。我可以通过uncheck数据模的方式继续存放其它改变的文件,但是每次都要这么做比较麻烦,而且我无法确认我的数据模是否存入git库,因此我决定删除git原码库,重新再来一次。

所有的git原码库都存放在当前目录中的.git 文件夹中,下面是在终端里的删除指令:

$ rm -r .git

由于该库中许多文件都是只读方式,因此我必须一一确认删除,即按'y'确认删除。

删除之后,我重新打开XCODE,确认git原码库不再存在。然后重复以上的步骤建立一个新的原码库。之后数周我再没有出现故障,不过我也注意不要积累太多的变化,我check-in的频率比较密。

另则消息:我在StackOverflow的积分今天达到三千五百零八,预计今年突破四千。

参考


No comments:

Post a Comment