Git允许您将版本控制嵌入到项目中。通过遍历提交,您可以跟踪所做的应用程序版本以及在这些提交中所做的更改。
提交到存储库时,可以使用命令行。但这有点棘手。因此,您可以使用GUI进行相同的操作。没问题。
![](https://img.haomeiwen.com/i17203299/ca811a8c97d7d677.png)
先决条件:
- 对Git命令有一些基本了解
术语
Commit-概念上类似于当前项目的保存或快照。您设置了一条有关已执行的更改的消息,并保存了代码的修订版,您可以单击一次随时将其还原。提交使您可以随时回到项目的此(命名)状态。
Git:Git是一个分布式版本控制系统,用于在软件开发过程中跟踪源代码的更改。
Index - 这是您要提交到git存储库的文件放置位置。也称为暂存区。
Repositories - Repositories 是一个文件位置,您可以在其中存储当前项目的所有相关文件。本地存储库位于系统上,远程Repositories (通常)位于远程计算机上。代码项目可以包含多个帐户中的多个存储库,但通常是单个帐户中的存储库。建议将存储库(也称为存储库)保持在1GB以下。
Working Directory - 文件系统中与存储库关联的目录。
Step-by-step
创建一个新的应用程序
创建一个新的Single View App。
确保已选中“ 在我的Mac上创建Git”存储库复选框(如果未选中,则可以稍后通过Xcode中的“源代码控制”菜单添加)。
![](https://img.haomeiwen.com/i17203299/bba40589dc6ee5f8.png)
查看源代码管理导航器
源代码管理导航器在屏幕的左侧:
![](https://img.haomeiwen.com/i17203299/e9591538afde7c7d.png)
在这种情况下,我已经扩展了文件夹,以便可以看到当前的分支。
更改文件
您可以对文件进行任何更改。我对ViewController.swift进行了一些更改,并多次执行了提交过程(如下所述),以创建多个提交。任何更改都会生效,打印命令或注释或实际工作(无论您选择什么)。
提交文件
您可以从Xcode屏幕顶部的源代码控制菜单中选择提交:
![](https://img.haomeiwen.com/i17203299/936cef70627cad58.png)
我的选择文件已在屏幕左侧修改,您可以看到对代码进行了哪些更改。
您甚至可以在屏幕左侧更改代码(如果进行更改,该代码将被带入该文件的主编辑器中,因此即使您按取消,也不会丢失任何工作)。
Choosing individual changes
可以通过选择屏幕中间的数字来进行更改
![](https://img.haomeiwen.com/i17203299/6703ffbfd9a92304.png)
然后,您可以为每个选项选择放弃更改,或者
![](https://img.haomeiwen.com/i17203299/5f9081d7ce788eff.png)
放弃更改也会在源文件中进行更改,因此应格外小心。
Branches
通常,您将在dev分支上工作,而在master分支上留下了您的App不断发布的版本。
Xcode屏幕左窗格中的Source Control导航器使我们可以创建新分支。右键单击提供菜单
![](https://img.haomeiwen.com/i17203299/7b539416ba30dd21.png)
然后我们可以从“ master”分支创建功能分支
![](https://img.haomeiwen.com/i17203299/728a10ce244c879e.png)
此功能分支将自动成为当前分支,如Source Control导航器中所示
![](https://img.haomeiwen.com/i17203299/f76fc72873116a70.png)
在任何时候,我们都可以通过右键单击切换分支,然后签出您要使用的分支。请注意,无论何时提交,都将提交到当前分支。
同样,您可以放弃更改(返回到先前的提交)
![](https://img.haomeiwen.com/i17203299/6023228dfccdbfb0.png)
查看提交
要查看您的提交,您可以单击您的分支。现在,如果您已经进行了一些先前的提交,您将在屏幕中央看到它们。
![](https://img.haomeiwen.com/i17203299/c85a86499ba9f5b7.png)
右键单击其中任何一个,您都可以签出该特定的提交。
查看提交之间的差异
要查看提交之间的差异,请在文件检查器中选择您选择的文件(在我的情况下,我对ViewController进行了更改)。
现在选择菜单项:视图>版本编辑器>显示比较视图
![](https://img.haomeiwen.com/i17203299/8f58c9f493c7d092.png)
在屏幕底部,您可以选择要选择的两个文件中的哪个
![](https://img.haomeiwen.com/i17203299/16d10f7d8c8ac1a8.png)
您可以单击时钟按钮,然后选择要与之比较的提交。这是查看已进行更改的好方法!
![](https://img.haomeiwen.com/i17203299/bc7a4548fb9ab121.png)
还有其他选择。您可以通过“视图”>“版本编辑器”菜单项查看日志,作者视图(向您显示更改的地方)或我们已经浏览过的比较视图。替代方法是在比较视图中选择选项(在比较视图中,屏幕右上角的箭头)。
![](https://img.haomeiwen.com/i17203299/2d5d58b2c05724ef.png)
如果继续使用比较视图,我们可以看到可以回滚到该提交中的特定更改-通过选择屏幕中间的数字并选择放弃更改。
![](https://img.haomeiwen.com/i17203299/e47fa981c376aa47.png)
当然,如果您进行更改,则需要提交这些更改(这将更新您的更改记录,以便团队中的每个人都可以看到您所做的更改)。
合并分支
这只有在有遥控器时才有意义。这里的想法是即使您同时也在与其他人一起处理文件。
创建repository
在github.com的右上角(假设您有一个帐户:如果没有,请先创建,然后继续阅读本指南)
![](https://img.haomeiwen.com/i17203299/c3c6e6c0649a589a.png)
创建一个名称为XcodeRepo的repository:
![](https://img.haomeiwen.com/i17203299/aedd9fbe0fe70ed5.png)
创建此repository:
![](https://img.haomeiwen.com/i17203299/48577f8801420c22.png)
将现有repository推送到远程存储库
我们需要复制github存储库的位置。它显示在屏幕中央
![](https://img.haomeiwen.com/i17203299/702fc6e158c97f8e.png)
我的地址是(您的地址会有所不同!):
您可以右键单击“ Remotes”文件夹并添加现有的遥控器
![](https://img.haomeiwen.com/i17203299/a9573033be907772.png)
然后可以将遥控器添加到对话框中-但请记住,您的位置将与我的不同!点击添加...
![](https://img.haomeiwen.com/i17203299/16b5f0a300c57aeb.png)
然后转到Source Control> Push…
![](https://img.haomeiwen.com/i17203299/e94ebe1b14423915.png)
然后,您可以选择推送到功能分支。这将具有在远程存储库上创建功能分支的作用。
刷新Web浏览器存储库,您可以看到features分支已更新。
![](https://img.haomeiwen.com/i17203299/c5c636fceaec604a.png)
更改远程repository
然后,您可以在浏览器中遍历到ViewController。然后,我们将通过选择笔图标进行更改。
![](https://img.haomeiwen.com/i17203299/6860a7eb95fceff5.png)
并且在View中确实加载了新行的更改。我选择打印“这是新行”
![](https://img.haomeiwen.com/i17203299/94c8822820821dd6.png)
然后使用屏幕底部的按钮提交更改。这些可以直接提交到功能分支。
更改Xcode源代码
移到Xcode的ViewController中相同的viewDidLoad函数。
我们将输入一个新行,但打印不同的内容。
![](https://img.haomeiwen.com/i17203299/dbfefa22dd8e00db.png)
现在,我们可以通过“源代码”控制菜单来提交此更改。我称我的提交为我做。
现在,当我们尝试推送到远程服务器时,我们被告知我们的本地repository 已过时。
![](https://img.haomeiwen.com/i17203299/ae6d66d12601b3c5.png)
所以我们就这样做,并通过Source Contro> Pull
Xcode提供了我们之前进行提交时所看到的选项。但是,我们需要选择是使用左侧(本地更改)还是右侧(远程更改)。
![](https://img.haomeiwen.com/i17203299/fb51b5264983571b.png)
我将选择远端(右侧)。
然后,拉动按钮变为,进行更改。
结论:总结变更
然后,您需要提交合并更改,然后将其推送到远程。(尽管在这种情况下,我是从远程进行更改的,所以没有任何可推送的内容。在Xcode中,您不会收到任何消息,因此,以防万一,习惯这样做是一种很好的做法)。
更多信息
这是其中一些功能宣布时的WWDC演示
https://developer.apple.com/videos/play/wwdc2017/405/
翻译自:https://medium.com/@stevenpcurtis.sc/using-git-source-control-with-xcode-227b4dfe5eb7
网友评论