Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
Visual Studio 2019 |Visual Studio 2022
可以通过将更改上传到其他人可以访问的远程存储库来共享本地 Git 存储库 分支 上的工作。 Git 推送命令将新 提交 从本地分支上传到远程存储库的相应分支。 当你选择将工作与远程存储库 同步 时,Visual Studio 会使用推送命令。
有关 Git 工作流的概述,请参阅 Azure Repos Git 教程。
先决条件
| 类别 |
要求 |
|
项目访问权限 |
项目的成员。 |
|
权限 |
- 查看专用项目中的代码:至少 是基本 访问权限。 - 克隆或参与专用项目中的代码: 参与者 安全组的成员或项目中的相应权限。 - 设置分支或存储库权限: 管理 分支或存储库的权限。 - 更改默认分支: 编辑存储库的策略 权限。 - 导入存储库: 项目管理员 安全组的成员或 Git 项目级 “创建存储库 ”权限设置为 “允许”。 有关详细信息,请参阅 “设置 Git 存储库权限”。 |
|
Services |
已启用存储库。 |
|
工具 |
可选。 使用 az repos 命令: Azure DevOps CLI。 |
注释
在公共项目中,具有 利益干系人 访问权限的用户具有对 Azure Repos 的完全访问权限,包括查看、克隆和参与代码。
| 类别 |
要求 |
|
项目访问权限 |
项目的成员。 |
|
权限 |
- 查看代码:至少 基本 访问权限。 - 克隆或参与代码: 参与者 安全组的成员或项目中的相应权限。 |
|
Services |
已启用存储库。 |
推送代码
将一个或多个提交添加到本地 分支后,可以将提交“推送”到远程分支以共享或备份工作。 使用推送命令时,Git 会检查本地分支是否与远程分支最新。 否则,Git 将阻止推送新提交,直到更新本地分支。 若要解决此问题,可以 拉取 以获取本地分支中不存在的远程分支提交。 如果拉取的远程提交与本地提交 冲突 ,请尝试在推送更改之前解决这些冲突。
要使 Git 推送命令正常工作,本地存储库必须连接到远程 Git 存储库。 如果从远程存储库克隆了本地存储库,则它们已连接。 但是,如果在未克隆的情况下创建了本地存储库,则需要将其连接到托管的 Git 存储库。 有关详细信息,请参阅“连接到 Azure Repos Git 存储库”并连接到 GitHub 存储库。
小窍门
若要支持对工作进行 拉取请求 评审,请避免直接在本地存储库的分支中 main 工作。 而是将提交保存到本地功能分支或 bugfix 分支,并在工作完成时推送该分支。 有关 Git 工作流的概述,请参阅 Azure Repos Git 教程。
Visual Studio 2022 通过使用 Git 菜单、Git 更改以及解决方案资源管理器中的上下文菜单提供 Git 版本控制体验。 Visual Studio 2019 版本 16.8 还提供 团队资源管理器 Git 用户界面。 有关详细信息,请参阅 Visual Studio 2019 - 团队资源管理器 选项卡。
在 “Git 更改 ”窗口中,选择向上键按钮来推送提交。
或者,可以从 “Git 存储库 ”窗口推送更改。 若要打开 Git 存储库 窗口,请在 “Git 更改 ”窗口中选择传出/传入链接。
或者,可以从菜单栏上的 Git 菜单中推送更改。
Visual Studio 2019 版本 16.8 及更高版本提供 Git 版本控制体验,同时维护 团队资源管理器 Git 用户界面。 若要使用 团队资源管理器,请从菜单栏中取消选中 “工具>选项>预览功能>”新增 Git 用户体验 。 可以从任一接口互换使用 Git 功能。
在 团队资源管理器中,选择“ 开始 ”,然后选择“ 同步 ”以打开 同步。
还可以通过在提交后立即选择“同步”,从“更改”转到“同步”视图。
在 “同步 ”视图中,选择 “推送 ”以将提交上传到远程存储库。 如果这是你第一次推送到存储库,你将看到以下消息: The current branch does not track a remote branch...这让你知道你的提交已推送到远程存储库上的新分支,并且从当前分支推送的未来提交将上传到该远程分支。
尽管很少需要将本地分支推送到不同命名的远程分支,但可以使用未区分的 Git 推送命令执行此作:
git push <remote repo> <local branch name>:<remote branch name>
若要将新提交从本地分支推送到同名远程分支,请运行以下简化的推送命令。 如果远程存储库没有同名分支,此命令将创建与本地分支相同的名称和提交的新远程分支。
git push <remote repo> <local branch name>
克隆远程存储库时,Git 会为克隆的远程存储库的 URL 分配别名 origin 。 运行 git remote -v 以检查 origin 别名值。 若要手动添加 origin 别名,请运行 git remote add origin <remote repo url>。
origin使用别名可以进一步简化推送命令:
git push origin <local branch name>
若要将新提交从当前本地分支推送到同名远程分支,请运行以下简化的推送命令。 如果远程存储库没有同名分支,此命令将失败。
git push origin
如果当前本地分支跟踪远程分支 origin,则可以完全缩写推送命令:
git push
但是,如果本地分支未跟踪远程分支,则完全缩写的推送命令将失败。 运行 git remote show origin 以检查分支的跟踪状态。 若要推送 和 设置当前本地分支以跟踪同名远程分支 origin,请运行 git push --set-upstream origin <local branch name> 一次。 如果该标志不存在,该 --set-upstream 标志将创建同名远程分支。
处理本地功能(或 bugfix)分支时,通常的做法是定期使用分支的最新更改 main 更新分支。 根据执行此作的方式,功能分支的本地和远程提交历史记录可能会有所不同,以便 Git 推送命令返回错误。 如果你是唯一推送到远程功能分支的人员,并且你确信本地功能分支包含所需的所有工作,则可以将 Git 推送命令与标志一起使用 --force ,将远程功能分支上的所有提交替换为本地功能分支中的提交。 有关 Git 推送命令的详细信息,包括其他 force 选项,请参阅 Git 参考手册。
推送提交后,可以创建 拉取请求 ,让其他人知道你希望审阅更改。 如果获得批准,所做的更改将合并到远程存储库的目标分支中。
后续步骤
相关文章