Xcode 9中Git支持的新增功能

最终产品图片
您将要创造的

苹果的最新IDE版本Xcode 9将于今年9月与iOS 11一起发布。 这是一个巨大的更新! 在即将发布的版本中,Git的源代码管理管理(SCM)爱好者是大赢家。

以前的Xcode版本支持SCM,但从未将其视为一等公民。 与诸如SourceTree之类的专业工具相比,Xcode对Git的支持有很多错误和乏味,这意味着开发人员必须在各种工具之间切换才能执行高级Git存储库管理任务。

所有这些都在Xcode 9中发生了变化。Apple不再将SCM视为次要的,而是选择与GitHub紧密集成,并与GitHub紧密合作以实现Xcode 9。

最终结果是,您现在可以直接从Xcode登录到GitHub帐户,以浏览,导航和克隆GitHub存储库。 您也可以搜索其他存储库,而不必切换到浏览器窗口。 相反,如果在浏览器中打开了GitHub存储库,则可以单击“克隆”按钮,并使Xcode自动克隆并打开项目。

正如苹果所说,“现在对Git的支持是最重要的”,而且苹果推出了新的源代码控制导航器,因此您不必打开一个新窗口即可从视觉上与其他Xcode分离。 开发人员现在可以通过清晰直观的时间线查看分支机构,标签和远程服务器,他们可以更精细地检查提交,并且可以看到更优雅,更有吸引力的更改比较。

本教程的目标

在本教程中,我将向您介绍Xcode 9引入的新SCM功能列表。我们将研究三个主要方面:

  • 提交
  • 分行
  • 标签

假设知识

要继续学习本教程,您应该具有Xcode的先前经验,以及通过Git进行源代码管理的工作知识。

Xcode 9 SCM入门

设置环境

为了利用Xcode的新SCM功能,您将需要:

下载并安装了最新的Xcode构建并拥有当前的GitHub帐户后,即可将GitHub帐户连接到Xcode9。启动Xcode并转到Preferences > Accounts 。 然后,选择左下角的+按钮以添加新帐户。

从Xcode连接您的GitHub帐户

从模式窗口中选择GitHub ,然后输入您的GitHub凭据。 如果您使用的是双重身份验证,则Xcode会提示您输入代码。

Xcode 9支持两因素身份验证

浏览和搜索GitHub存储库

让我们看看如何直接在Xcode中无缝浏览现有的公共GitHub存储库。 如果尚未显示Xcode欢迎屏幕,请转到“ 窗口” >“ 欢迎使用Xcode”

欢迎使用Xcode 9

然后选择“ 克隆现有项目” ,这将显示您当前拥有,正在使用或已加星标的GitHub上的存储库列表。

在Xcode 9中搜索GitHub项目

除了提供的列表之外,您还可以通过名称或输入其GitHub URL搜索公共仓库(或您可以访问的私人仓库)。 对于我们的教程,键入RealmDo并单击Clone ,然后选择一个本地目录以将项目克隆到其中。

在Xcode 9中签出项目

然后它将要求您提供目录以将项目检入到:

直接从GitHub打开Xcode项目

除了从Xcode中提取项目存储库之外,另一个真正的精妙功能是,您可以在浏览器中打开GitHub存储库,然后选择Clone或下载 ,您将看到一个名为Open in Xcode的新按钮。

Xcode 9中的SCM设置

没错:如果单击它,它将自动在Xcode中打开要克隆和下载的项目。

回到我们的项目。 由于我们使用CocoaPods来管理依赖关系,因此我们需要跳回命令终端并运行pod install

19:06 $ pod install Analyzing dependencies Downloading dependencies Using Realm (2.7.0) Using RealmSwift (2.7.0) Generating Pods project Integrating client project Sending stats Pod installation complete! There is 1 dependency from the Podfile and 2 total pods installed.

现在应该在本地设置我们的项目,并且您的.xcworkspace应该在Xcode中打开,其中包含项目中的所有文件。

Xcode SCM首选项

通过导航到Xcode的首选项,然后选择Source Control ,您可以直接在首选项窗格中更改其行为的各个方面,包括Git作者的姓名和电子邮件,有趣的是,甚至还可以更新.gitignore设置。

将新项目与GitHub相关联

另一方面,如果您已经创建了一个新的Xcode项目并且尚未在GitHub上创建该项目,则可以直接从Xcode创建一个新的GitHub项目。 右键单击Remotes ,然后在GitHub上选择Create“ RealmDo” Remote

Setting a remote master in Xcode 9

然后,Xcode会要求您为存储库命名,并选择一个与其关联的帐户。

从Xcode 9中创建GitHub存储库

探索新的SCM接口

让我们探索新界面的每个部分。

Xcode 9s SCM概述

  1. 左侧窗格具有您熟悉的图标列表,用于访问项目的属性。 第二个选项卡是全新的:它是源代码管理导航器。
  2. 提交历史记录”窗格是导航器中最重要的部分,向您显示了项目和分支的提交历史记录列表。
  3. 右侧窗格为您提供有关分支和所选提交的更多上下文信息。
  4. 除了上下文分支和提交信息之外,右侧的此子部分还向您显示哪些文件已成为所选提交的一部分。
  5. 左侧窗格从SCM角度为您提供了项目的层次结构视图,显示了当前分支,本地或远程的任何其他分支以及标签。 它还会发出信号,指示是否有新的提交要推送或拉出,如您将在后面看到的。

源代码管理导航器

我们将在Xcode 9中探索的第一件事之一是Source Control Navigator,它是Xcode 9的新功能。它不再是源代码视图的第二等公民-它现在已完全融入Xcode。 如上面的屏幕快照中的(1)所示,选择左窗格中的第二个图标,以打开Source Control Navigator。

提交历史

让我们看一下“提交历史”透视图,该视图显示了项目的提交列表,包括提交作者的姓名,日期,描述以及来自GitHub的作者头像,构成了项目历史。

这是一个非常清晰且组织精美的视角。 尽管从历史的角度来看,这个示例项目相当稀疏(尽管我们很快会对此进行更改),但是该窗格具有强大的功能。

除了能够轻松滚动并获取有用的历史信息之外,您还可以直观地按修订,消息或作者进行过滤和搜索。 实际上,您可以链接或加入多个过滤器,不仅可以按作者搜索,还可以按修订版本进行搜索。 您还可以使用范围栏按特定日期段进行搜索,例如最近24小时最近7天最近30天

过滤Xcode 9中的提交

选择一个特定的提交会在右侧窗格中弹出一些额外的信息。 除了分支信息之外,您还可以获得提交信息,完整的SHA,作者,消息和日期。 您还将看到在提交期间生成的文件列表,这对于帮助您查明在调试期间导致问题的提交非常有用。

Xcode 9中的右侧窗格

双击提交会在左侧窗格中显示该提交中已更改的文件的列表,并且版本比较会在前面和中间显示。 这是熟悉的差异透视图,但是这次有了很大的改进。

比较提交文件的版本

选择右上角的Assistant Editor可以访问非常好的差异视图,它不仅使您可以查看文件的差异,还可以轻松地遍历以前的提交,并查看提交信息以及实际的提交信息。文件更改。

Xcode 9s新的比较透视图窗格

通过右键单击提交,您还可以看到一个菜单,该菜单可让您联系作者,复制提交信息,从该提交分支,甚至在浏览器中的GitHub上打开该提交。

提交的上下文菜单

您还可以创建一个标签,这就是我们要做的。 在第一次提交时选择“ 标记”按钮,并将其命名为release/0.1

创建标签

通过设置父组(发行版,Beta版等)以这种格式命名标签可达到一个有趣的目的,我们很快就会发现。 现在,由于我们已经标记了提交,因此我们将深入探讨下一个主题:分支。

分枝

我们目前在master分支上进行开发,但是在正常的开发流程中,我们通常会在单独的分支上进行工作。 我们将创建一个分支来开发和测试功能,然后在其正常工作时将其合并回master分支。 通过右键单击master从master选择Branch来创建一个新分支。 调用新分支readme_changes

在Xcode 9中查看分支

我想演示合并的工作原理,因此在新分支中,让我们通过选择Source Control > Commit提交更改。 这使我们回到比较视图,从而使我们有机会确认我们在此提交中所做的所有更改,并能够逐行比较更改。

检查完更改后,输入类似于以下内容的提交消息。 并确保选中“ 推送到远程”框。

比较活动提交的更改

功能分支完成后,我们希望将其合并回master分支。 右键单击master分支,然后选择第二个合并选项: 从“ readme_changes”合并到“ master”

将提交合并到母版中

Xcode将合并并自动将您切换回master分支。 切换回master分支,您会注意到当前分支右边带有数字1的向上的小箭头。

从远程主机提交计数

这使我们知道我们有一个提交,需要将其推送到远程存储库。 如果计数是2 ,那么我们将比远程主机多两次提交。

相反,如果母版中有尚未更新的新更新,则Xcode会通知您。 Xcode将从远程获取,并用向下箭头通知您,并计数您在远程主服务器后面。

标记

早些时候,我们在一个较早的提交中创建了一个标签。 观察主窗格,可以看到已被标记的另一个提交。 左侧窗格可轻松查看分支下方所有标签的简要列表。

记住我们用于标记release/0.1的命名约定。 我们这样做是有原因的。 创建带有父级的标签允许Xcode将标签分组在一起。

在Xcode 9中将标签分组在一起

在我们的例子中,我们有两个属于release父标签的标签。 我们可以出于不同的原因为标签创建多个逻辑组,而Xcode使组织标签变得容易。

通过选择特定标签,我们的提交历史记录将仅显示与该标签相关的提交,这意味着我们拥有发行期间引入的所有更改的完整编码清单。 这将帮助我们缩小特定于该版本的任何有问题的代码。

结论

Xcode 9是一个巨大的版本,最大的新功能之一是Apple最终将SCM集成为IDE的一等公民。 这解决了许多开发人员对于Xcode如何管理协作开发和版本控制的长期困扰。

在Xcode 9中,不仅GitHub无缝地融合到了平台中,而且开发人员现在在新的SCM选项卡中获得了漂亮的代码管理界面。 开发人员可以获得有关代码历史记录,提交,合并,标记和分支的权威视图,以及调试和识别已引入错误的提交的高级观点。 Git爱好者和SCM爱好者将非常感谢Apple在IDE内整合真正强大的Git管理工具的倡议。

翻译自: https://code.tutsplus.com/tutorials/whats-new-with-git-support-in-xcode-9--cms-29336

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值