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