iOS开发人员命令行上的Git版本控制

这件事发生在我们所有人身上:我们更改了代码,突然之间,一切似乎都“坏了”。 如果您知道如何使用版本控制,那么这就是福音。 在本教程中,我们将从命令行学习如何使用Git。

关于版本控制

在开始之前,我们应该仔细检查什么是版本控制。 版本控制系统是一种软件解决方案,可以轻松地保存代码和其他数据的修订版,以便您可以回滚到以前的版本,查看已进行的更改以及与协作者共享更新。

版本控制有很多优点和用例。 例如,通过查看对项目的更改(“ commits ”),您可以确定谁编写了任何特定的代码以及原因。 您还可以回滚发现错误或破坏功能的所有更改。

今天最常用的版本控制系统是Git,因此我们将在本文中介绍它。 请注意,还有其他广泛使用的系统,例如SVN和Mercurial。

关键术语和概念

  • 仓库回购所有-包含单个项目的代码,每个文件的全部修改历史记录。
  • 工作目录 -编辑代码时,您正在更改工作目录。 如果要将这些更改保存到仓库中,则需要进行commit 。 如果工作目录中的所有更改都已提交给仓库,则工作目录为clean
  • 提交 -对源文件的一组更改。 通常,将这些更改分组在一起,以便每个提交都与单个错误修复或功能有关。
  • 分支机构 –项目的工作可以组织为分支机构。 这样一来,一个开发人员或一组开发人员就可以处理一个功能,而另一名开发人员可以处理另一个功能。
  • 合并 -将两个分支中的更改集中在一起。 通常,这可以由Git自动完成,但是如果发生冲突 ,则可能必须手动告诉Git如何合并文件。

仓库管理服务

使用版本控制时,将创建一个存储库repo ,最常见的是将此存储库托管在Repository Management Service上。 就本教程而言,我们不会在任何地方托管我们的存储库,因此您可以专注于实际使用版本控制。 但是,如果需要,您可以阅读这些存储库管理服务,并且可以根据需要将这些知识应用于它们。

GitHub,Bitbucket,GitLab和Coding就是其中的一些例子,它们被全世界的开发人员广泛使用。 我和其他许多人都使用GitHub,因为它托管了大量的开源项目。 GitHub仓库在默认情况下是公开的,但是您可以按月创建私有仓库。

入门

创建一个应用程序

首先,您需要在Xcode中创建一个新的应用程序。 对于此应用程序,您可以使用所需的任何模板,如果当前应用程序具有Git存储库,则在本教程中也可以使用它。

这是在最终创建项目之前(需要确定存储项目的位置时)IDE的外观:

图1创建一个应用程序

确保选中“ 在Mac上创建Git存储库”复选框,因为这将确保您的项目在内部具有存储库。 以后,如果您选择使用存储库管理系统,则可以推送所有这些代码,并且您所做的每一次提交都会显示出来。

打开终端

要进入命令行,您需要打开终端。 您可以通过以下两种方式之一来执行此操作。 您可以打开Launchpad ,然后在Launchpad第一页的Other文件夹中找到Terminal图标。 或者,您可以点击键盘上的Command-Space并在Spotlight中搜索Terminal

打开终端后,您应该会看到类似以下的内容。

图2空白的终端窗口

这称为“命令提示符”,您将看到当前目录,然后是用户名,后跟$

行! 现在,您准备学习如何在终端上使用版本控制。

终端命令备忘单

以下是我在有关Terminal入门的教程中编写的一些基本命令。 您需要了解这些内容才能有效使用终端。

救命
  • help -顾名思义,您可以在终端中键入此命令以获取不同命令的列表。
  • man <command name> -与上一个命令相似,此命令可准确告诉您命令的功能(并提供完整的文档),而无需您在Google上搜索。

文件管理

  • ls -列出所有的当前目录的内容。 如果您不想使用Finder浏览文件,则此命令非常有用-您可以在终端中使用此命令简单列出它们。
  • cd <directory name> -此命令用于更改目录。 如果仅编写cd ,则将移出当前目录。 使用ls (查看目录)后,您可以输入要输入的目录的名称。
更改偏好
  • defaults <setting to change> -此命令用于修改默认系统设置,其中某些不能不使用终端进行更改。
  • caffeinate顾名思义,此命令用于防止Mac变暗,关闭或Hibernate。 要结束此操作,只需按Control-C即可
文字编辑
  • vim <file name> -这是我的最爱之一。 您可以使用默认的TextEdit(或任何基于GUI的编辑器)来编辑文本文件,但是vim是一个命令行文本编辑器-也就是说,它完全在终端中工作。
联网
  • ping <URL or IP Address> -此命令允许您检查指定URL或IP地址的服务器响应时间。 这可能对每个开发人员都不有用,但是很高兴知道。
管理员
  • sudo <action to perform> -一种覆盖用户权限并成为计算机超级用户的方法。 使用时将提示您输入管理员密码。

不同的Git命令

既然您已经看到了一些基本的终端命令,那么让我们了解一下Git可以执行的不同操作。 我不会全部介绍它们,但是我会教您有关日常开发中将使用的主要知识。 如果您需要更多信息,可以在终端中运行git help以获得详细信息,如果还不够,请参阅man git以获得完整的文档,以获取完整的文档。

帮助页面如下所示:

图3帮助页面
创建一个项目
  • git clone {remote-repo-link} -如果要从存储库管理服务克隆存储库,则可以将此命令与URL一起使用,以在计算机上获取本地副本。
  • git init —如果要从现有文件夹创建新的存储库,则可以使用此命令。 它将当前文件夹初始化为一个新的仓库。 通常,您将在首次创建项目时执行此操作。
提交变更
  • git status status-告诉您工作目录中的哪些文件已更改。 如果您更改了文件,则可能是时候提交了!
  • git commit -am "{helpful commit message}" -对项目进行了某些更改(例如,当您完成一个简单的功能或进行了错误修复后),您应该提交更改。 确保提供简洁明了的提交信息,因为这将帮助其他开发人员了解您所做的工作以及原因。
  • git add {filename}git add --all —如果您将新文件添加到您的仓库中,则必须在提交之前将其添加到仓库中。 使用add命令。
仓库分支
  • git branch {branch-name?} -使用此命令,您可以列出当前分支或创建一个新分支。
  • git merge {branch-name} -将当前分支与指示的分支合并。 这会将当前分支中的代码与命名分支合并。
  • git checkout {branch-name}切换到指定的分支。 这将简单地将当前分支放在一边,并使另一个分支处于活动状态。
仓库管理系统
  • git push push-更新存储库管理系统中的存储库。 完成更改并确保代码运行良好后,可以推送代码,以便其他成员可以看到并拉出代码。
  • git pull更新您的存储库的本地工作副本,以反映已推送到存储库管理系统的最新更新。 如果您在团队中工作,最好在进行任何更改之前执行此操作。

这些是您将在版本控制中开始使用的一些主要命令,但是在结束本教程之前,让我们深入了解一下我们先前创建的Xcode项目中的一些命令。

在Xcode项目中使用Git的示例

现在,让我们看一些如何在本教程前面创建的Xcode项目中使用命令行Git的示例。 请注意,我们将使用上面的终端命令,因此请确保继续引用或记住它们。

导航到项目目录

在开始之前,您需要使用上面提到的命令导航到项目目录(提示:使用cdls命令)。 到达那里后,运行ls并确保您具有以下内容:

图4文件导航

- 现在,您在项目目录中,并准备对项目进行任何操作。 只需遵循我们的提交和分支。

承诺

提交代码是您在编程中最常做的事情。 进行有效更改后,最佳做法是将其与详细评论一起提交。

做出改变

首先,请更改Xcode项目。 对于我来说,我将在我的viewDidLoad()方法中添加以下伪代码行:

let foobar = "foo"
获取状态

完成添加(或减去)一行或两行代码后,您就可以检查项目的状态了。 为此,将以下命令(减去$提示符)粘贴到“终端”窗口中:

$ git status

您会看到以下内容:

图6修改后的文件

您修改的文件以红色突出显示,表明您尚未提交更改。

将文件添加到暂存区

如果只想提交某些文件,则可以使用“暂存区”来进行提交,在该“暂存区”中仅提交那些文件。 要将所有修改后的文件添加到“临时区域”,您需要做的是运行以下代码行:

$ git add -A

您看到的-A标志意味着将添加所有已修改的文件( -A适用于所有文件,您还可以编写git add --all )。

要查看您的文件已准备好提交,只需再次运行以下命令:

$ git status

您会看到以下内容:

图7暂存区文件

看到? 相同的红色文件现在变成绿色,这表示您已经成功准备提交该文件。

提交代码

最后,要最终提交代码,只需在终端中运行以下命令,然后在引号之间添加一条消息即可。

$ git commit -m "My very first commit."

-m标志告诉终端您要向文件中添加一条消息,因此务必清楚此消息。 这些消息对于跟踪项目更改至关重要。

现在,您已经进行了第一次提交! 您在使代码更轻松,更安全的正确道路上。

分行

作为开发人员,您要做的第二件事是创建,合并和使用分支来整理代码并隔离功能,然后再将其发布给客户。

创建一个新分支

默认情况下,您位于我们所谓的“主”分支中。 那是最终应该放到所有内容的主要分支。最佳实践(尤其是与团队合作)是在自己的分支中研究新的主要功能,这些新功能将在完成后合并回master。

要练习使用分支,让我们创建一个新分支。 为此,请运行以下命令:

$ git branch my-first-branch

您可以根据需要命名分支。

要查看新分支,可以键入:

$ git branch

运行该命令时,您将看到类似以下内容的内容:

图8分支

注意,您可以看到两个分支: mastermy-first-branch (或您命名的分支)。 此外,您会看到master分支旁边有一个星号,表明您当前在该分支中。

签出当前分支

如果需要切换到另一个现有分支,则需要checkout该分支。 执行此操作时,您将离开当前分支,并且其所有代码将保持不变(以及本地更改),但是将使用您签出的分支中的代码填充您的工作目录。

使用以下命令尝试一下:

$ git checkout my-first-branch

您应该得到一个类似于以下内容的确认:

图9交换分支

现在,您已切换到该分支,它应该是干净的。 要确认这一点,请运行git status来检查是否存在任何已修改的文件。

合并分支

完成更改后,通常将分支合并到master分支。 我们尚未进行任何更改,因此在合并两个分支之前,现在就进行更改。

对Xcode项目进行另一个更改。 对于我来说,我将在我的viewDidLoad()方法中添加以下伪代码行:

let gooey = "fooey"

您可以进行任何喜欢的更改。 只要确保您知道什么文件和进行了什么更改即可。

完成之后,再次运行以下代码行:

$ git status

现在,您应该看到文件名显示为红色,并且您需要先提交,然后再将此更改合并回您的主分支。 我相信您知道该怎么做,所以让我们跳到下一步。 仔细检查提交是否成功,并带有git status

到现在为止,您应该已经提交了代码,因此让我们准备好合并两个分支。 首先,运行以下命令:

$ git checkout master

此命令切换到master分支以准备与我们创建的另一个分支合并。 最后,要合并,请运行以下命令:

$ git merge my-first-branch

您应该获得如下确认信息:

图11与Master合并

现在,您对Feature分支所做的更改已被合并回master。 如果自创建分支以来master分支已更改,则Git将尝试自动将您的Feature分支更改与master合并。 如果无法自动执行此操作,它将提示您手动解决任何冲突。

现在,您知道如何合并分支,创建分支以及仅使用终端在它们之间切换!

结论

如您所见,对您的项目进行版本控制并不是很困难,而且回报是值得的。 版本控制是核心开发的最佳实践,如果您想在专业环境中工作,则应该熟悉它。

翻译自: https://code.tutsplus.com/tutorials/git-version-control-on-the-command-line--cms-30358

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值