理解 XCode 中的 Git 版本控制(2)

git repository 已经准备好了,但是如果你回到 Xcode,打开 Source Control 菜单,你会发现一切都还是不可用的。

Version Control Disable Source Control

这是因为 Xcode 不会自动被通知到,我们已经手动添加了 git repository。因此,点击菜单 Xcode > Quit Xcode 来关闭 Xcode ,然后再重启。现在,在 NoGitExample 项目中,如果你再打开 Source Control 菜单,你会看到这些的选项都可用了,跟我们创建 project 时就添加了 git repository 的效果相同。

Version Control Enable Source Control

到了这一步,就可以关闭这个 NoGitExample 项目,也可以把它从桌面上删除了。

现在你已经能够知道怎么为一个 project 添加 git repository了。并且即使你在创建 project 时有意或无意没有添加 git repository,也可以随时手动添加。

提交更改

说到所谓的“提交更改到 repository”,我们实际的意思是:存储我们项目的一个新版本。新版本包含目前已作出的所有更改,比如代码修改或者新添加的文件。一般来说,一次提交应该发生在一定量的工作已经完成,并且项目处于稳定状态之时。关于提交的频率应该是多久一次,并没有一定之规,但我建议:如果你认为从上一次提交到现在之间,你所做的工作如果意外丢失,会造成巨大的时间精力浪费,那就一定要提交一下了。

Xcode 默认会在新项目创建时做一次初始提交,目的是保存一个项目初始状态的版本。这次提交是在幕后完成的,不会打扰你,也不会要求你确认。如果你在创建项目时没有添加 git repository,是如前所述在之后手动添加的,初始提交是通过这个指令完成的:git commit -m ‘Initial commit’ 我们之前用过这个指令。

 

戴仓薯
翻译于 7天前

0人顶

 

翻译的不错哦!

 

实际上,你可以看到初始提交的相关信息,只需点击菜单 Source Control > History… 。在这里记录了你对项目的每一次提交。

Version Control Initial Commit

我们现在来尝试一些操作吧,首先要对项目做点改动。来到 ViewController.m 文件,在 private class 部分添加以下的 property 声明:

1
2
3
4
5

 

@interface ViewController ()

@property (nonatomic) int sum;

@end

 

接下来,修改 viewDidLoad 方法如下:

1
2
3
4
5
6
7
8
9
10
11
12

 

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.

int a = 5;
int b = 10;

self.sum = a + b;

NSLog("The result is: %d", self.sum);
}

 

如果你看一眼 Project Navigator (即左边栏),你会注意到在 ViewController.m 文件后面,多了一个字母 M,如下图所示:

这意味着这个文件已经被修改了,并且相比上次提交的版本确实有改动。一般来说,每次你改动一个文件之后,字母 M 就表示已有改动,还未提交。

 

戴仓薯
翻译于 7天前

0人顶

 

翻译的不错哦!

 

左栏的蓝色区域(图中标识为#3的部分),在右栏变成一条线,这显示了文件中的实际改动。这样的表示法让所有的改动一目了然,并且能对应到改动的具体位置(行号)。也许你注意到了,窗口的中央,在两个预览栏之间,有一些小的圆角标签,上面写着数字(图中标识为#4)。这些标签一个一个地数出了全部的改动,上面的数字就是计数的序号。在数字左边,有一个对勾符号。如果出现了这个对勾,说明对应的改动可以正常提交到 repository。尽管如此,你还是可以选择跳过,暂时不提交文件的某一个或几个改动,甚至抛弃所做的更改,只需点击数字右边的小下三角。含有两个选项的小菜单将会浮现:

Version Control Xcode - Commit Window

如果你选择 Don’t Commit 选项,对勾符号会换成禁止符号,对应的改动就不会提交到 repository 了。

如果你选择菜单中的 Discard Change 选项,会出现一个确认窗口,提醒你选中的改动将会被回滚,并且回滚是无法被撤销的。

Version Control Xcode - Commit Don't

如果你点击 OK 按钮,响应区域中的改动会消失无踪,仿佛从没来到世上。

如果你有留心观察上面的提交窗口截图,你会发现所有的修改都会被 Xcode 认为是改动,即使一个空行也不例外。事实上,空行是屏幕上不显示的换行符,所以它被收集为一项改动是合情合理的。

总之,对于这个样例,确保你没有丢弃任何改动,允许一切都提交。因此你应该看到所有的圆角 label 上都有对勾。

在这两栏之下是一片空白区域,中间写着“Enter commit message here”。这个区域用来附加一些简短信息,描述这个版本所做的更改。点击它,填上下图所示的内容:

Version Control Xcode - Commit Message

填写(有意义的)提交信息至关重要,尤其是在提交次数很多的情况下。所以,要把它当做不可或缺的一步。

既然我们已经浏览了一遍这个窗口的主要内容,下面我们来做第一次提交吧。在窗口的右下角,有一个按钮写着:Commit 1 file.

在这个按钮里,总是会写着提交的文件总数。点击它,然后恭喜!你的第一次提交已经诞生,将会永久载入历史,不仅是你个人的历史,也是 git 的历史。这是什么意思呢?只要打开菜单上的 Source Control > History…,就可以看到它列在这里。

Version Control Xcode - Commit History

如你所见,我们之前写的提交信息以及改动的文件总数都出现在这里了。在 Xcode 做出的初始提交中,提交了所有文件;但是我们只改动了其中一个。

除此之外,如果你关闭 history 窗口,再看看 Project Navigator 左边栏,ViewController.m 文件旁边的 M 字母也消失啦!

现在,我们准备再做一次提交吧。这一次,我们来为项目添加一些新文件,最好的方式莫过于创建一个新类。那么,按下键盘上的 Command + N 键,然后添加一个 Objective-C class。把它设为NSObject 的子类,命名为 TestClass。最后,添加到项目中。

一旦上面这些都完成了,注意左边栏 Project Navigator 中的两个类文件旁边都出现了一个字母 A ;意思是这两个文件是后添加到项目中的,因此自然它们还没有被提交过。

打开 ViewController.h 文件,然后 import 我们的类:

1

 

#import "TestClass.h"

 

接下来,打开 ViewController.m 文件,如下声明一个 private 属性���

1
2
3
4
5
6
7

 

@interface ViewController ()

@property (nonatomic) int sum;

@property (nonatomic, strong) TestClass *testClass;

@end

 

再看左边栏 Project Navigator,注意到现在有4个没有提交的文件了。两个类文件是我们刚添加的,还有另外两个本来就有的文件。我们需要将这些改动也提交,因此打开 Source Control > Commit… 菜单。

Version Control Xcode - Commit

这一次,选中了5个有待提交的文件。第5个文件(显示在第1行)是项目的配置文件,是在添加新类时由 Xcode 自动修改的。如果你点击TestClass.hTestClass.m 文件,左(译者注:原文可能笔误,此处应该为“右”)栏会变为一片空白,如下图所示:

Version Control Xcode - Commit

这是因为这两个文件之前没有提交过,因此没有之前的版本可以对比。所以,右栏里只写着“File was added” 就是再正常不过的了。

来到提交信息区域,填写提交信息: TestClass class was added to the project。完成之后,点击 Commit 5 files 按钮,让 Xcode 提交更改到 git repository。

第二次手动提交已经顺利完成了。可以打开提交历史来验证,在菜单Source Control > History… :

Version Control Xcode - Commit History

版本对比

在你提交了多个版本之后,对比各个版本、跟踪代码的变化是非常容易的。当新添的代码不能如预期工作时,版本对比显得尤为重要,因为你需要找到从上个稳定版本以来的所有变化。

要比较两个不同版本的文件,或者点击菜单里的View > Version Editor > Show Version Editor,或者点击工具栏上的Version Editor 按钮,如下图所示:

Version Control Xcode - Editor Button

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/167efa4ce7f2db7faf0afe8744ce6ed3.html