现已发布!阅读关于 11 月新增功能和修复的内容。

使用存储库和远程仓库

远程仓库和远程存储库使您可以通过在不同位置同步工作来与他人协作。VS Code 提供集成的工具来使用远程存储库,而无需命令行 Git 知识。

本文档介绍了在 VS Code 中使用 Git 存储库和远程仓库,包括克隆、发布、同步更改和管理多个存储库。

理解远程仓库

远程仓库是在另一台服务器(例如 GitHub、Azure DevOps 或 GitLab)上托管的 Git 存储库。远程仓库通过提供一个中心位置供团队成员共享他们的工作来实现协作。

当您克隆一个存储库时,Git 会自动创建一个名为 origin 的远程仓库,该远程仓库指向原始存储库。如果您需要与不同的服务器或存储库交互,则可以处理多个远程仓库。

使用远程仓库涉及三个主要操作:

  • Fetch (获取):下载远程仓库的提交,而不更改您的工作文件。这使您可以查看他人的工作,而无需将他们的更改合并到您的工作中。

  • Pull (拉取):下载远程仓库的提交并将它们合并到您当前的本地分支。这是 fetch 和 merge 的一个操作。

  • Push (推送):将您的本地提交上传到远程仓库,以便他人可以访问您的更改。

Diagram of Git fetch, pull, and push operations between local and remote repositories.

当您推送时,Git 需要知道将提交发送到哪个远程仓库。默认情况下,Git 使用为您当前分支配置的上游分支。如果没有设置上游,VS Code 会提示您发布分支并设置上游。

添加远程仓库

要将新远程仓库添加到您的存储库:

  1. 在“源代码管理”视图(⌃⇧G (Windows, Linux Ctrl+Shift+G))中,选择“更多操作”(...)>“远程仓库”>“添加远程仓库”。

    或者,从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 **Git: Add Remote** 命令。

  2. 输入远程仓库的 URL。

  3. 为远程仓库输入一个名称(例如,upstream)。

您的存储库现在有一个附加的远程仓库,您可以从中获取或推送到该仓库。

使用类似的步骤删除远程仓库(**Git: Remove Remote**)。

克隆存储库

克隆会在您的计算机上创建远程仓库的本地副本。克隆的存储库包含远程仓库的所有分支、提交和历史记录。默认情况下,Git 会配置一个名为 origin 的远程仓库,指向您从中克隆的 URL。

要克隆一个存储库,请在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中运行 **Git: Clone** 命令,或在“源代码管理”视图中选择“克隆存储库”按钮。

如果您从 GitHub 克隆,VS Code 会提示您对 GitHub 进行身份验证。然后,从列表中选择一个存储库克隆到您的计算机。列表包含公共和私有存储库。对于其他 Git 提供者,请输入存储库 URL。

Screenshot of the Clone Repository prompt in VS Code.

克隆时,VS Code 会询问您选择一个本地文件夹来存储存储库。克隆后,您可以选择在新窗口中打开克隆的存储库。

GitHub Pull Requests and Issues 扩展通过拉取请求和问题管理增强了 GitHub 集成。了解更多关于 在 VS Code 中使用 GitHub

发布到 GitHub

如果您有一个尚未连接到远程仓库的本地存储库,您可以直接从 VS Code 将其发布到 GitHub。

要将存储库发布到 GitHub:

  1. 打开“源代码管理”视图。

  2. 在“源代码管理”视图中选择“发布到 GitHub”。

  3. 如果出现提示,请登录 GitHub。

  4. 选择是创建公共存储库还是私有存储库。

  5. 选择要包含在初始提交中的文件。

VS Code 会在 GitHub 上创建一个新存储库,将其添加为远程仓库,并推送您的提交。

提示

发布到 GitHub 是将您的本地工作在线上的最快方法。它在一个步骤中创建存储库、配置远程仓库并推送您的提交。

推送、拉取和同步

推送、拉取和同步是将本地工作与远程存储库保持同步的核心操作。

推送提交

推送会将您的本地提交上传到远程存储库。要推送提交:

  1. 在本地提交您的更改。

  2. 在“源代码管理”视图中,选择“更多操作”(...)>“推送”。

    或者,选择状态栏中的同步图标以一次性执行拉取和推送操作。如果您想推送到特定的远程仓库,请使用“推送到”选项。

    您还可以通过使用“源代码管理图”视图工具栏中的“推送”图标来推送您的本地提交。

  3. 如果出现提示,请登录以进行远程身份验证。

您的提交已上传到远程分支。其他团队成员现在可以拉取您的更改了。

注意

如果您的分支未配置上游,VS Code 会提示您先发布该分支。

拉取提交

拉取会将提交从远程存储库下载并合并到您的本地分支。要拉取提交:

  1. 在“源代码管理”视图中,选择“更多操作”(...)>“拉取”。

    或者,选择状态栏中的同步图标以一次性执行拉取和推送操作。如果您想从特定的远程仓库拉取,请使用“从...拉取”选项。

    您还可以通过使用“源代码管理图”视图工具栏中的“拉取”图标来拉取远程提交。

  2. VS Code 下载并合并远程提交。

如果您的本地更改与远程提交之间存在冲突,VS Code 会通过 合并冲突解决工具 帮助您解决它们。

拉取(Rebase)

您可以将本地提交变基到远程更改之上,而不是合并远程更改。

  1. 在“源代码管理”视图中,选择“更多操作”(...)>“拉取 (Rebase)”。

  2. VS Code 首先应用远程提交,然后将您的本地提交重放到其之上。

Rebase 会创建一个线性历史记录,而不会产生合并提交。了解更多关于 Git rebase 的信息。

同步更改

同步结合了拉取和推送操作 - 它首先从远程仓库拉取更改,然后推送您的本地提交。这是保持工作同步的推荐方式。

要同步更改:

  • 在“源代码管理”视图中选择“同步更改”。
  • 选择状态栏中的同步图标。

Screenshot of the Sync Changes button in the Source Control view.

状态栏的同步指示器显示您需要推送(↑)和拉取(↓)的提交数量。例如,↑2 ↓1 表示您有 2 个提交要推送,1 个提交要拉取。

提示

配置 git.confirmSync 设置,以控制 VS Code 在同步前是否会提示确认。

获取提交

获取会将提交从远程存储库下载,而不会将它们合并到您的本地分支。这使您可以在集成传入更改之前对其进行审查。

要获取提交:

  • 在“源代码管理”视图中,选择“更多操作”(...)>“获取”。
  • 选择“从所有远程仓库获取”以从所有已配置的远程仓库获取。
  • 选择“获取 (Prune)”以获取并删除已删除的远程分支(要始终修剪,请启用 git.pruneOnFetch 设置)。

获取后,您可以在“源代码管理图”中审查传入的提交,然后再使用“拉取”合并它们。

要在后台自动获取提交,请启用 git.autofetch 设置(默认禁用)。要配置获取间隔,请使用 git.autofetchPeriod 设置(默认 180 秒)。

状态栏同步操作

状态栏提供了对常用存储库和远程操作的快速访问,无需打开“源代码管理”视图。

分支指示器

左下角的“分支”指示器显示:

  • 当前分支名称:选择以切换分支。
  • 同步状态:要推送(↑)和拉取(↓)的提交数量。
  • 发布状态:未发布分支显示“发布分支”。

Screenshot of the Status Bar showing the branch indicator with sync status.

状态栏中的同步图标(旋转箭头)使您能够将更改与远程仓库同步(推送和拉取)。

您可以使用以下设置自定义状态栏的行为:

源代码管理图

“源代码管理图”提供了您的提交历史记录、分支关系以及与远程仓库的同步状态的视觉表示。这使得理解传入和传出的更改变得容易。

Screenshot of the Source Control Graph showing commit history and incoming/outgoing commits.

该图显示:

  • 当前分支:以特殊指示器突出显示。
  • 上游分支:显示您尚未拉取的远程分支上的提交。
  • 传入提交(↓):您可拉取的远程分支上的提交。
  • 传出提交(↑):您可以推送的本地提交。
  • 其他分支:您存储库中的本地和远程分支。

您可以直接从图的工具栏获取、推送和拉取。图视图还显示传入和传出的更改,使您轻松了解何时需要同步。选择图中的一项以查看该提交中更改的单个文件。

使用以下设置自定义“源代码管理图”:

了解更多关于 使用“源代码管理图”查看提交历史记录 的信息。

使用存储库

“存储库”视图使您能够在一个工作区中管理多个 Git 存储库。这在处理跨越多个存储库的项目时很有用。“存储库”视图还显示与您的存储库关联的 Git worktrees

Screenshot of the Repositories view in VS Code showing multiple Git repositories.

要显示“存储库”视图,请在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中运行 **Source Control: Focus on Repositories View** 命令。配置 scm.alwaysShowRepositories 设置以始终在“源代码管理”视图中显示“存储库”视图。

对于每个存储库,您都可以看到活动分支、同步状态,并访问获取、拉取、推送等操作。

当您打开包含 Git 存储库的文件夹时,VS Code 会自动检测它们。如果您打开一个包含多个存储库的文件夹(例如,monorepo),所有存储库都会出现在“存储库”视图中。

存储库选择模式

如果您希望一次专注于一个存储库或 worktree,您可以切换到单存储库模式。在该模式下,您只能看到所选存储库的更改和图。在多存储库模式下操作时,“源代码管理”视图显示所有存储库的更改。使用 scm.repositories.selectionMode 设置在多存储库和单存储库模式之间切换。

凭据助手

凭据助手可以安全地存储您的身份验证凭据,这样您就不必每次推送或拉取时都输入它们。您应该 设置凭据助手,以避免每次 VS Code 与远程存储库交互时都被要求输入凭据。

后续步骤

© . This site is unofficial and not affiliated with Microsoft.