我在准备新兵训练营时发现了一项惊人的技术

作为一个自称为软件发烧友的人,当我第一次遇到“版本控制”一词时,我感到非常尴尬。 您可能想知道为什么? 嗯,“版本控制”是任何软件人员都应该熟悉的术语。

我经常想知道一个软件团队如何与在不同远程位置工作的成员一起有效地在一个项目上合作。 但是我只是简单地得出结论,他们将不得不共同承担各种任务,并在最后将一切放回去。 “但是,他们应该怎么做呢,”我继续问自己。 我回答说:“他们可能会将完成的模块发送给其中负责将该项目耦合在一起的任何人。” 案件被驳回。

但是,请稍等! 如果项目过于复杂,以至于无法分离并隔离其他模块,该怎么办? 好吧,我没有答案。 以前的建议在这种情况下绝对不可行,因为几乎不可能解决文件冲突,除非团队拥有臭名昭著的臭名昭著的约翰·威克(John Wick),众所周知,他专门从事不可能完成的任务。

现在,即使有可能解决文件冲突,这也是一个非常浪费时间的考验,因此是不可行的选择。 因此,直到几个月前我遇到“版本控制”一词时,这个谜团仍未解开。 当我偶然发现整个学期时,我正在准备自己的家庭学习课程,以准备对安德拉(Andela Fellowship Cycle)37进行技术评估。 版本控制到底是什么?它带来了什么? 我继续阅读,很想找到我问题的答案。 我很震惊,因为我意识到我在寻找很久以前那个谜的答案。 我以为约翰·威克(John Wick)从来就不存在,以版本控制系统的形式出现在我面前。 版本控制系统是解决如何以团队形式在一个项目上进行协作工作的难题的解决方案,而无论成员的位置如何,并将其无缝地组合在一起。 这些奇迹提供了一种方法,使项目可以同时进行工作,轻松地还原更改,文档文件修改以及将生产代码与开发代码分开。 而且,所有项目文件都将存储在远程服务器上,以确保其安全性。

还有什么呢? 它们不仅可以用于软件项目,还可以用于许多其他类型的项目。 提供的优势无数。 所需要做的只是熟悉工作流和术语的初步工作,您的工作非常顺利。 大多数类型的版本控制系统的学习曲线都很短。 运作方式如下。

项目文件存储在存储库或存储库中(或多或少类似于计算机上的文件夹),因此无论何时要启动项目,都必须首先创建一个新的存储库。 创建存储库后,将在新的存储库中创建一个默认分支,称为“主”分支。 分支基本上是项目工作路径中的一条路径,“主”分支是项目工作路径中的主分支。 它包含可用于生产的(客户消费的)代码,这意味着您的项目在任何时候都可以在master分支上使用,该版本已通过测试并证明没有错误和功能。 通常,您将为所有开发工作创建一个单独的分支。 该分支最初将包含您的master分支的副本,因此将包含尚未证明可用于生产环境的任何更改。 每当您要添加一些新功能时,都为其创建一个新分支,然后将更改合并回到开发分支。 测试开发代码并证明其可部署后,所有更改都将合并到master分支中。 这样,master分支会随着生产就绪代码逐步增长,而development分支则领先于尚未被证明完全可用且没有错误的代码。

作为一个新手,可能很难理解如何使用版本控制系统,但是通过实践,它变得非常容易且实用。 可以通过简单的插图轻松解释工作流程。 考虑一群青少年,他们必须从一个非常强大的迷宫的心脏中找到通往自由的道路。 让我们假设在通往外部的奇异路径的任意点处都有信标。 他们每天都必须尝试至少找到一个信标。 因此,在每一天的开始时,他们都分道扬and,走入迷宫的方式分开,确保留下自己的运动轨迹,以便他们总是可以在一天结束时找到返回营地的方式。 每当找到信标时,他们便沿着该路径移动营地,以再次在信标位置设置它,然后继续搜索下一个信标。 最终,他们继续沿着正确的道路移动营地,直到他们走出迷宫为止。 每天,他们分头去寻找下一个信标,最终可能需要几天的时间才能找到它。 但是无论发生什么,他们都不会移动营地,直到找到新的信标。

与版本控制系统相关的有几个术语,例如:登台,推送,拉取,提交和拉取请求,但我不会尝试解释它们,因为一方面,我不完全理解其中的一些,并且另一方面,它们可能会给我开始撰写本文时想到的简单文章增加不必要的复杂性。 我的目的是与您分享我对版本控制系统的惊人发现。 如果您想进一步了解甚至使用它们,请随时在Google上进行搜索; 资源非常可用且充足。 我可以向您保证,有了一个好的版本控制系统,您或您的团队将永远不会迷路。 祝好运!