与 Azure Repos 和 Visual Studio 共享代码
本文内容
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
通过在 Azure Repos Git 存储库中托管代码来与他人共享 Visual Studio 解决方案。 可使用 Visual Studio 来管理 Azure Repos Git 存储库或 GitHub 存储库。 本文提供了下列任务的过程:
将项目或解决方案添加到本地 Git 存储库
将代码发布到 Azure Repos Git 存储库或 GitHub 存储库
在发布之前评审代码更改
将工作项链接到提交
提交和推送更新
从存储库的主分支拉取更改
要克隆 GitHub 存储库,请获取克隆 URL,如克隆存储库 中所述。
有关 Git 工作流的概述,请参阅 Azure Repos Git 教程 。
先决条件
必须在 Azure DevOps 项目设置中启用 Repos。 如果 Repos 中心和关联页面未显示,请参阅打开或关闭 Azure DevOps 服务 以重新启用 Repos。
若要查看专用项目中的代码,必须是 Azure DevOps 项目的成员,具有基本访问级别或更高级别。 对于公共项目,每个人都可以查看代码。
若要克隆或贡献专用项目的代码,必须是“参与者”安全组的成员或具有相应的权限集。 对于公共项目,任何人都可以克隆和贡献代码。 有关详细信息,请参阅什么是公共项目?
注意
对于公共项目,被授予利益干系人访问权限的用户对 Azure Repos 具有完全访问权限。
必须在 Azure DevOps 项目设置中启用 Repos。 如果 Repos 中心和关联页面未显示,请参阅打开或关闭 Azure DevOps 服务 以重新启用 Repos。
若要查看代码,必须是 Azure DevOps 项目的成员,具有基本访问级别或更高级别。 如果你不是项目成员,请添加为成员 。
若要克隆或贡献代码,在要更改的项目中,必须是“参与者”安全组的成员或具有相应的权限。
有关权限和访问权限的详细信息,请参阅默认 Git 存储库和分支权限 及关于访问级别 。
注意
Visual Studio 2019 版本 16.8 及更高版本提供了用于管理 Git 工作流的新 Git 菜单,其上下文切换比团队资源管理器少。 本文在 Visual Studio 选项卡下提供的过程提供了有关使用 Git 体验以及团队资源管理器的信息。 有关详细信息,请参阅 Git 和团队资源管理器的并行比较 。
将项目或解决方案添加到新本地 Git 存储库
使用 Git 与他人共享 Visual Studio 解决方案的第一步是为代码创建本地 Git 存储库。 如果这是你第一次使用 Visual Studio 连接到 Azure Repos,请参阅从 Visual Studio 连接到项目 了解详细信息。
为 Visual Studio 解决方案创建新的本地 Git 存储库,方法是右键单击解决方案资源管理器中的解决方案名称,然后选择“创建 Git 存储库”。 或者,在 Visual Studio 右下角的状态栏上选择“添加到源代码管理”,然后选择“Git”。 如果未看到这些选项,则表示代码已在 Git 存储库中。
从菜单栏中选择“Git”>“创建 Git 存储库”以启动“创建 Git 存储库”窗口。 如果未看到此选项,则表示代码已在 Git 存储库中。
此步骤仅适用于 Visual Studio Git 版本控制体验:在“创建 Git 存储库”窗口中,选择“仅限本地”,验证本地路径是否正确,然后选择“创建”。
现已在 Visual Studio 解决方案文件夹中创建了本地 Git 存储库,并将代码提交到了该存储库。 本地 Git 存储库包含 Visual Studio 解决方案和 Git 资源。
下载并安装 Git 。 安装过程中出现提示时,请启用 Git 凭据管理器 。
在命令提示符下,转到包含 Visual Studio 解决方案的根文件夹,并运行以下命令。 这些命令在 Visual Studio 解决方案文件夹中创建本地 Git 存储库,并将代码提交到该存储库。
> git init
> git commit -am "first commit"
> git branch -m main
本地 Git 存储库现在包含 Visual Studio 解决方案和 Git 资源。
发布你的代码
可以通过将本地 Git 存储库发布到 Azure Repos Git 存储库来与他人共享工作。
Visual Studio 2022 通过使用 Git 菜单、Git 更改 和解决方案资源管理器 中的上下文菜单提供 Git 版本控制体验。 Visual Studio 2019 版本 16.8 还提供了团队资源管理器 Git 用户界面。 有关详细信息,请参阅“Visual Studio 2019 - 团队资源管理器”选项卡。
通过右键单击解决方案资源管理器中的解决方案名称,然后选择“推送到 Git 服务”以启动“创建 Git 存储库”窗口,连接到 Azure DevOps 存储库。
从菜单栏中选择“Git”>“推送到 Git 服务”以启动“创建 Git 存储库”窗口。
在“创建 Git 存储库”对话框中,选择“GitHub”。 在“创建新的 GitHub 存储库”下输入任何必需值。 然后选择“推送”。
可以通过转到 GitHub 并在帐户中搜索存储库名称来验证是否已创建存储库。
Visual Studio 2019 版本 16.8 及更高版本提供 Git 版本控制体验,同时保留团队资源管理器 Git 用户界面。 要使用团队资源管理器 ,请取消选中菜单栏中的工具 >选项 >预览功能 >新 Git 用户体验 。 可以互换使用任一界面中的 Git 功能。 下面,我们提供了用于发布代码的并排比较。
在团队资源管理器“同步”视图的“推送到 Azure Dev Ops 服务”部分中,选择“发布 Git 存储库”按钮。
选择 Azure DevOps 组织和存储库名称,然后选择“发布存储库”。
此步骤创建一个新项目,其名称与为存储库选择的名称相同。 要在现有项目中创建存储库,请选择“存储库名称”旁边的“高级”,然后选择一个项目。
代码现在位于 Azure Repos Git 存储库中。 可以通过选择“在 web 上查看”来在 web 上查看代码。
打开浏览器,并使用 https://dev.azure.com/<OrganizationName>/<ProjectName>
格式的 URL 导航到 Azure DevOps 项目。 如果没有项目,请创建一个 。
在 Azure DevOps 项目中,创建 不包含自述文件的空 Git 存储库。 从“克隆存储库”弹出窗口复制克隆 URL。
要将本地提交发布到 Azure 存储库,请使用上一步中的克隆 URL,在本地 git 存储库文件夹中的命令提示符处运行以下命令。
> git remote add origin <clone URL>
> git push -u origin main
代码现已发布到 Azure Repos Git 存储库的 main
分支。
评审提交更改
在发布之前,最好评审提交中的代码更改。 Visual Studio 提供差异视图,可帮助查看自上次提交以来所做的所有更改。
要查看提交中更改的内容,请选择“Git”>“管理分支”,打开“Git 存储库”窗口。
在“Git 存储库”窗口中,选择分支,右键单击提交,然后选择“查看提交详细信息”以打开“提交”窗口。
在“提交”窗口中,可以右键单击任意文件,然后选择“与上一个版本比较”,查看提交进行的文件更改。
要查看提交中更改的内容,请转到“团队资源管理器”中的“同步”页,右键单击任何提交,然后选择“查看提交详细信息”以打开“Git 详细信息”窗口。
在“提交详细信息”窗口中,可以右键单击任意文件,然后选择“与上一个版本比较”,查看提交进行的文件更改。
要显示当前分支中上次提交的差异视图,请在本地 git 存储库文件夹中的命令提示符处运行以下命令。
> git show
将工作项链接到提交
开发软件时,可以捕获哪些提交支持完成 Azure DevOps 任务或 bug 修复等工作项。 通过链接到提交的工作项的审核线索,团队可以了解任务和 bug 的解决方法。
可以通过将 #ID 添加到提交消息,将工作项链接到提交。 例如,当提交推送到 Azure Repos 时,提交消息“修复 bug #12 报告工具中缺少图标”会将工作项 12 链接到提交。
可以通过团队资源管理器的“更改”视图中的“相关工作项”将工作项包含在提交中。
还可以通过将 #ID 添加到提交消息,将工作项链接到提交。 例如,当提交推送到 Azure Repos 时,提交消息“修复报告工具中的 bug #12”会将工作项 12 链接到提交。
可以通过将 #ID 添加到提交消息,将工作项链接到提交。 例如,当提交推送到 Azure Repos 时,提交消息“修复报告工具中的 bug #12”会将工作项 12 链接到提交。 要进行测试,请进行一些代码更改,并在本地 git 存储库文件夹中的命令提示符处运行以下命令。
> git commit -am "Fix bug #<work item ID>"
> git push
推送提交更改
在编写代码时,Visual Studio 会自动跟踪代码更改。 如果对更改感到满意,可以使用提交将它们保存在 Git 中,然后将提交推送到 Azure Repos。
在“Git 更改”窗口中,输入描述更改的消息,然后选择“全部提交”。 “全部提交”会提交非暂存更改并跳过暂存区域。 可以通过选择“Git 更改”窗口“更改”部分顶部的全部暂存 +(加号)按钮,选择在提交前暂存所有文件。
要将提交推送到 Azure Repos,请选择向上键按钮。
或者,可以从“Git 存储库”窗口推送提交。 要打开“Git 存储库”窗口,请在“Git 更改”窗口中选择“传出/传入”链接。
或者,可以从菜单栏中选择“Git”>“推送”。
在编写代码时,Visual Studio 会自动跟踪代码更改。 如果对更改感到满意,可以使用提交将它们保存在 Git 中,然后将提交推送到 Azure Repos。
通过依次选择“主页”按钮和“更改”,打开团队资源管理器的“更改”视图。 或者,在状态栏上选择挂起的更改图标 。
在“Git 更改”窗口中,输入描述更改的消息,然后选择“全部提交”。 “全部提交”会提交非暂存更改并跳过暂存区域。 可以通过选择“Git 更改”窗口中“更改”部分顶部的全部暂存 +(加号)按钮,选择在提交前暂存所有文件。
要将一个或多个提交推送到 Azure Repos,请依次选择“开始”和“同步”,以在团队资源管理器中打开“同步”视图。 或者,在状态栏上选择未发布的更改状态栏图标 。
在“同步”视图中,选择“推送”将提交上传到远程存储库。 如果这是你第一次推送到存储库,你将看到消息 The current branch does not track a remote branch...
,该消息告知你已将提交推送到远程存储库上的新分支,并且从当前分支推送的未来提交将上传到该远程分支。
要将当前本地分支的新提交发布到 Azure Repos Git 存储库中的相应分支,请在本地 git 存储库文件夹中的命令提示符处运行以下命令。
> git push
拉取更改
可以通过拉取其他人创建的提交,使本地分支与其远程分支保持同步。 在处理功能分支时,最好定期切换到 main
分支并拉取新提交,使其与远程 main
分支保持同步。
注意
在 Visual Studio 中,可以在不同的视图和菜单栏上的 Git 菜单中找到“提取”和“拉取”链接。 这些链接都执行相同的操作 - 从远程存储库提取或拉取到本地存储库的当前分支。
在“Git 更改”窗口中,可以使用向下键提取链接检查远程分支上的最新提交,然后选择“传出/传入”链接以打开“Git 存储库”窗口。 “提取”链接可下载不在本地分支中的远程提交,但不会将其合并到本地分支。 提取的提交显示在“Git 存储库”窗口的“传入提交”部分中。 可以双击提取的提交以查看其文件更改。
选择“拉取”,将提取的远程提交合并到本地存储库中。 “拉取”链接执行提取,然后将下载的提交合并到本地分支中。
在“团队资源管理器”中,选择“主页”,然后选择“同步”以打开“同步”视图。
在“同步”视图中,可以使用“提取”链接预览远程分支上的最新更改。 “提取”链接可下载不在本地分支中的远程提交,但不会合并它们。 提取的提交显示在“同步”视图的“传入提交”部分中。 可以双击提交以查看其文件更改。
选择“拉取”,将提取的远程提交合并到本地存储库中。 “拉取”链接执行提取,然后将下载的提交合并到本地分支中。
要从 Azure Repos Git 存储库下载新提交而不将其合并到本地存储库中,请在本地 git 存储库文件夹中的命令提示符处运行以下命令。
> git fetch
要从 Azure Repos Git 存储库下载新提交并将其合并到本地存储库的当前分支,请运行以下命令。
> git pull
常见问题
问:为什么 Web 门户和 Visual Studio 的登录页不相同?
答:登录页取决于你在 Azure DevOps 中使用的是 Microsoft 帐户还是工作帐户。 始终使用用于 Azure DevOps 的用户名和密码登录。
问:是否可以配合使用 Git 命令提示符与 Visual Studio?
答:Visual Studio 的团队资源管理器和 Git 命令行可以很好地协同工作。 在任一工具中对存储库进行的更改都会反映在另一个工具中。
请确保安装最新版本的适用于 Windows 的 Git ,其中包含可帮助连接到 Azure DevOps Services/TFS 存储库的工具。
有关从命令行使用 Git 的其他帮助,请参阅 Azure Repos Git 教程 和命令参考 。
后续步骤
相关文章