Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
Visual Studio 2019 |Visual Studio 2022
无论你的软件项目是大还是小,尽快使用版本控制都是一个好主意。 版本控制系统由软件组成,可帮助你跟踪随时间推移在代码中所做的更改。 编辑代码时,告知版本控制系统拍摄文件的快照。 版本控制系统会永久保存该快照,以便稍后在需要时重新调用快照。
Azure DevOps Services 和 TFS 提供两种版本控制模型: Git(即分布式版本控制)和 Team Foundation 版本控制(TFVC),后者是集中式版本控制。 本文概述了使用 TFVC 的起点。 如果要确定要使用的 Azure DevOps Services/TFS 版本控制类型,请参阅 为项目选择正确的版本控制。
为何使用版本控制?
如果没有版本控制,你希望在计算机上保留多个代码副本。 这是危险的,因为很容易在错误的代码副本中更改或删除文件,可能会丢失工作。 版本控制系统通过管理代码的所有版本来解决此问题,但一次显示一个版本。
版本控制系统具有以下优势:
- 创建工作流 - 版本控制工作流可防止每个人使用其自己的开发过程和不同且不兼容的工具的混乱。 版本控制系统提供进程强制和权限,以便每个人都留在同一页上。
- 使用版本 - 每个版本都有版本更改的说明,例如修复 bug 或添加功能。 这些说明可帮助你按版本而不是单个文件更改跟踪代码中的更改。 可以随时根据需要从版本控制查看和还原存储在版本中的代码。 这样,就可以轻松地基于任何版本的代码进行新的工作。
- 一起编码 - 版本控制同步版本,并确保更改不会与团队中的其他更改冲突。 你的团队依赖于版本控制来帮助解决和防止冲突,即使用户同时进行更改。
- 保留历史记录 - 当团队保存新版本的代码时,版本控制会保留更改的历史记录。 可以查看此历史记录,了解谁、原因以及何时进行更改。 历史记录让你有信心进行试验,因为可以随时回滚到以前的好版本。 通过历史记录,你可以基于任何版本的代码进行基础工作,例如修复上一版本中的 bug。
- 自动执行任务 - 版本控制自动化功能可节省时间并生成一致的结果。 将新版本保存到版本控制时,可以自动执行测试、代码分析和部署。
有很多事情可能需要你作为开发人员的时间:重现 bug、学习新工具以及添加新功能或内容。 随着用户的需求纵向扩展,版本控制可帮助你的团队协同工作并按时交付。
Team Foundation 版本控制
TFVC 是集中式版本控制系统。 通常,团队成员在其开发计算机上只有一个文件版本。 历史数据仅在服务器上维护。 分支是基于路径的,并且在服务器上创建。
TFVC 允许应用 精细权限 ,并将访问权限限制为文件级别。 由于团队将所有工作都签入 Azure DevOps Server,因此可以轻松审核更改并确定在 变更集中签入的用户。 通过使用 比较 和 批注,可以识别它们所做的确切更改。
Quickstarts
首先创建项目、配置工作区以及查看和共享代码。 可以使用以下任一客户端或 IDE:
分步教程
通过以下教程了解在 TFVC 中工作的基础知识,该教程演示了使用 Visual Studio 和 TFVC 的 DevOps 开发人员的一天。
你想要做什么?
-
花几分钟时间设置开发计算机,以充分利用版本控制代码库的所有优势。
-
服务器工作区 - 在进行更改之前,团队成员会公开签出文件。 大多数作都需要开发人员连接到服务器。 此系统有助于锁定工作流。 以这种方式工作的其他系统包括 Visual Source Safe、Perforce 和 CVS。 使用服务器工作区,可以纵向扩展到非常大的代码库,每个分支和大型二进制文件有数百万个文件。
本地工作区 - 每个团队成员使用最新版本的代码库的副本,并根据需要脱机工作。 开发人员根据需要签入其更改并解决冲突。 这样工作的另一个系统是 Subversion。
-
在大多数情况下,无需考虑版本控制。 当需要管理和了解更改时,系统支持你。
-
有时,你需要搁置一些或全部你正在做的事情。 你的版本控制系统可以消除一些痛苦,并减少因中断而浪费的时间。
-
签入更改,以便团队可以在创建的值的基础上进行构建、测试和发布。
-
使用分支和锁来隔离由不同团队完成的工作引入的风险。
-
版本控制系统的一个优点是,你可以及时回顾,获取有关对文件进行了哪些更改的详细信息。
-
可以将服务器文件夹和本地文件夹彼此进行比较,并查看每个文件夹的内容之间的差异。
-
使用版本控制的主要优点是,多人可以同时处理文件。 一个缺点是,有时必须解决冲突。 尽管遇到冲突可能令人沮丧,但系统提供了信息和工具,帮助你了解和解决冲突。
-
当需要阻止签出和更改文件或文件夹时,可以将其锁定。
仅从 tf 命令行可用的作
下表列出了只能在命令提示符下使用 tf 命令行工具执行的 TFVC 任务。
| 任务 | Command |
|---|---|
| 删除其他用户的工作区。 |
workspace 带有 /delete 选项 |
| 撤消其他用户的签出。 | undo |
| 删除其他用户的锁。 | lock |
| 定义标签范围。 | label |
| 执行无基合并。 | merge |
| 永久销毁内容。 | destroy |
| 回滚一个或多个更改集的效果。 | rollback |