Azure Repos 中的 Git 入门

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

开始使用 Azure Repos 和 Git 存储库开发代码。 可以使用 Visual Studio 或 Git 命令克隆存储库、定义本地分支、提交和推送更改,以及与其他人同步。 如果需要创建或导入存储库,请参阅在项目中创建新的 Git 存储库导入 Git 存储库

注意

本文介绍如何使用 Visual Studio 管理 Azure Repos Git 存储库。 使用类似的过程,可以使用 Visual Studio 来管理 GitHub 存储库。 要克隆 GitHub 存储库,请获取 URL,如克隆存储库中所述。

有关 Git 工作流的概述,请参阅 Azure Repos Git 教程

注意

Visual Studio 2019 版本 16.8 及更高版本提供了用于管理 Git 工作流的新 Git 菜单,其上下文切换比团队资源管理器少。 本文在 Visual Studio 选项卡下提供的过程提供了有关使用 Git 体验以及团队资源管理器的信息。 要了解详细信息,请参阅并排比较 Git 和团队资源管理器

先决条件

  • 必须在 Azure DevOps 项目设置中启用 Repos。 如果 Repos 中心和关联页面未显示,请参阅打开或关闭 Azure DevOps 服务以重新启用 Repos。

  • 若要查看专用项目中的代码,必须是 Azure DevOps 项目的成员,具有基本访问级别或更高级别。 对于公共项目,每个人都可以查看代码。

  • 若要克隆或贡献专用项目的代码,必须是“参与者”安全组的成员或具有相应的权限集。 对于公共项目,任何人都可以克隆和贡献代码。 若要了解详细信息,请参阅什么是公共项目?

    注意

    对于公共项目,被授予利益干系人访问权限的用户对 Azure Repos 具有完全访问权限。

  • 必须在 Azure DevOps 项目设置中启用 Repos。 如果 Repos 中心和关联页面未显示,请参阅打开或关闭 Azure DevOps 服务以重新启用 Repos。

  • 若要查看代码,必须是 Azure DevOps 项目的成员,具有基本访问级别或更高级别。 如果你不是项目成员,请添加为成员

  • 若要克隆或贡献代码,在要更改的项目中,必须是“参与者”安全组的成员或具有相应的权限。

若要了解有关权限和访问权限的详细信息,请参阅默认 Git 存储库和分支权限关于访问级别

获取代码

可以克隆远程 Git 存储库以创建其本地副本。 克隆会创建供你使用的源代码副本和版本控制信息,以便 Git 可以管理源代码。

如果想要在不克隆的情况下创建本地存储库,请参阅创建新的 Git 存储库。 创建本地存储库后,可以继续提交共享同步工作。

Visual Studio 2022 通过使用“Git”菜单、“Git 更改”和“解决方案资源管理器”中的上下文菜单提供 Git 版本控制体验。 Visual Studio 2019 版本 16.8 还提供了团队资源管理器 Git 用户界面。 有关详细信息,请参阅“Visual Studio 2019 - 团队资源管理器”选项卡。

  1. 在菜单栏上的“Git”菜单中,选择“克隆存储库...”

    Visual Studio 中 Git 菜单上的“克隆存储库”选项的屏幕截图。

  2. 在“克隆存储库”窗口中,输入克隆的存储库的远程存储库位置和文件夹路径。 如果不知道远程存储库位置,请从“浏览存储库”选项中选择“Azure DevOps”。

    Visual Studio 中“克隆存储库”窗口的屏幕截图。

  3. 选择“克隆”。 克隆 Git 存储库之后,Visual Studio 将检测该存储库,并将其添加到 Git 菜单中的“本地存储库”列表。

    Visual Studio 中 Git 菜单上的“本地存储库”选项的屏幕截图。

注意

使用 Azure DevOps Services 时,项目 URL 的格式为 dev.azure.com/{your organization}/{your project}。 但是,仍然支持以前引用 visualstudio.com 格式的格式。 有关详细信息,请参阅 Azure DevOps 简介 - 将现有组织切换为使用新的域名 URL

提交工作

Git 分支会将你的更改与项目中的其他工作分离开来。 建议的 Git 工作流是为你处理的每项功能或修复使用新分支。 可以在本地 Git 存储库中进行提交,以将更改保存到该分支上。

  1. 从菜单栏上的“Git”菜单中选择“新建分支...”,以打开“创建新分支”窗口。

    Visual Studio 中的 Git 菜单中“新建分支”选项的屏幕截图。

  2. 在“创建新分支”窗口中,输入描述性分支名称,让其他人知道该分支包含的工作。 默认情况下,Visual Studio 从当前分支创建新分支。 “签出分支”复选框会自动切换到新创建的分支。 选择“创建” 。

    Visual Studio 中“创建新分支”窗口的屏幕截图。

  3. 将 README.md 文件添加到克隆的存储库。 在解决方案资源管理器中,可以使用“文件夹视图”浏览存储库内容,或在存储库中打开 Visual Studio 解决方案。 Git 会跟踪在 Visual Studio 内部和外部所做的更改。

  4. 如果对更改感到满意,请使用提交将其保存在 Git 中。 在“Git 更改”窗口中,输入描述更改的消息,然后选择“全部提交”。 “全部提交”会提交非暂存更改并跳过暂存区域。 可以通过选择“Git 更改”窗口中“更改”部分顶部的全部暂存 +(加号)按钮,选择在提交前暂存所有文件。

    Visual Studio 的“Git 更改”窗口中“全部提交”按钮的屏幕截图。

    选择提交信息链接以获取有关提交的更多详细信息。

    显示 Visual Studio 中的提交信息链接的屏幕截图。

备注

如果有多个文件,但不想提交全部文件,可以右键单击每个文件并选择“暂存”。 暂存要提交的所有文件后,选择“提交已暂存文件”。 手动暂存更改时,“提交已暂存文件”将替换“全部提交”。

Visual Studio 2019 的“Git 更改”窗口中“暂存”选项的屏幕截图。

共享所做的更改

在向分支添加一个或多个提交并准备好与其他人共享这些更改后,推送提交,以便其他人可以看到它们。

推送提交后,可以创建拉取请求。 拉取请求可让其他人知道你希望你的更改得到审阅。 批准后,拉取请求通常会将更改添加到远程存储库的默认分支。

  1. 在“Git 更改”窗口中,选择向上箭头按钮以推送提交。

    Visual Studio 的“Git 更改”窗口中向上箭头按钮的屏幕截图。

    你也可以从“Git 存储库”窗口推送所做的更改。 要打开“Git 存储库”窗口,请在“Git 更改”窗口中选择传出/传入链接。

    Visual Studio 的“Git 更改”窗口中的“传出/传入”链接和“Git 存储库”窗口中的“推送”链接的屏幕截图。

    你也可以从菜单栏上的“Git”菜单推送所做的更改。

    Visual Studio 中“Git”菜单中的“推送”选项的屏幕截图。

  2. 创建拉取请求,以便其他人可以查看你的更改。 如果刚刚从“Git 更改”窗口推送了更改,则可以选择“创建拉取请求”链接以打开 Web 浏览器,可在该浏览器中在 Azure Repos Web 门户中创建新的拉取请求。

    Visual Studio 中“Git 更改”窗口中“创建拉取请求”链接的屏幕截图。

    或者,如果刚刚从“Git 存储库”窗口推送了更改,则可以选择该窗口顶部的“创建拉取请求”链接。

    Visual Studio 中“Git 存储库”窗口中“创建拉取请求”链接的屏幕截图。

    或者,可以右键单击“Git 存储库”窗口中的任意分支,然后选择“创建拉取请求”。

    Visual Studio 中“Git 存储库”窗口中分支上下文菜单中的“创建拉取请求”菜单选项的屏幕截图。

当拉取请求在 Azure Repos Web 门户中打开时,请验证源分支和目标分支。 在此示例中,我们希望将 add-readme-file 分支中的提交合并到 main 分支中。 输入标题和可选说明,指定任何审阅者,可以选择关联任何工作项,然后选择“创建”。

Azure Repos Web 门户中“新建拉取请求”窗体的屏幕截图。

有关拉取请求的详细信息,请参阅拉取请求教程。

与其他人同步

可以通过拉取其他人创建的提交,使本地分支与其远程分支保持同步。 虽然 Git 擅长将传入更改与你的更改合并,但有时你可能需要解决合并冲突。 在处理功能分支时,最好定期切换到 main 分支并拉取新提交,使其与远程 main 分支保持同步。

在“Git 更改”窗口中,可以使用“提取”、“拉取”、“推送”和“同步”按钮使本地分支与其远程分支保持同步。

Visual Studio“Git 更改”窗口中“提取”、“拉取”、“推送”和“同步”按钮的屏幕截图。

在上一个屏幕截图中,按钮控件从左到右依次为:

  • “提取”下载不在本地分支中的远程提交,但不会合并它们。
  • “拉取”执行提取,然后将下载的提交合并到本地分支中。
  • “推送”将未推送的提交上传到远程存储库,该存储库会将其添加到相应的远程分支。
  • “同步”依次执行“拉取”和“推送”操作。

也可以从 Git 菜单中选择“提取”、“拉取”、“推送”和“同步”。

Visual Studio 的 Git 菜单中“提取”、“拉取”、“推送”和“同步”选项的屏幕截图。