使用存储库和远程仓库
Git 存储库和远程仓库让您可以通过在不同位置同步您的工作来进行协作。VS Code 提供了集成的工具来使用远程存储库,而无需命令行 Git 知识。
本文介绍在 VS Code 中使用 Git 存储库和远程仓库,包括克隆、发布、同步更改以及管理多个存储库。
理解远程仓库
远程仓库是在其他服务器(例如 GitHub、Azure DevOps 或 GitLab)上托管的 Git 存储库。远程仓库提供了一个中心位置,供团队成员共享他们的工作,从而实现协作。
克隆存储库时,Git 会自动创建一个名为 origin 的远程仓库,该仓库指向原始存储库。如果需要与不同的服务器或存储库进行交互,可以使用多个远程仓库。
使用远程仓库涉及三个主要操作:
-
Fetch(抓取):下载远程仓库的提交,而不会更改您的工作文件。这可以让你看到其他人做了什么,而无需将他们的更改合并到你的工作中。
-
Pull(拉取):从远程仓库下载提交并将其合并到您当前的本地分支。这相当于 fetch 加上 merge 操作。
-
Push(推送):将本地提交上传到远程仓库,以便其他人可以访问您的更改。

推送时,Git 需要知道将提交发送到哪个远程仓库。默认情况下,Git 使用为当前分支配置的上游分支。如果未设置上游,VS Code 会提示您发布该分支并设置上游。
添加远程仓库
要向存储库添加新远程仓库:
-
在源代码管理视图(⌃⇧G (Windows, Linux Ctrl+Shift+G))中,选择更多操作(...) > 远程仓库 > 添加远程仓库。
或者,从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 Git: Add Remote 命令。
-
输入远程仓库的 URL。
-
为远程仓库输入一个名称(例如,
upstream)。
您的存储库现在有一个额外的远程仓库,您可以从中抓取或推送到该仓库。
使用类似的步骤可以删除远程仓库(Git: Remove Remote)。
克隆存储库
克隆会在您的计算机上创建远程存储库的本地副本。克隆的存储库包含远程仓库的所有分支、提交和历史记录。默认情况下,Git 会配置一个名为 origin 的远程仓库,指向您克隆的 URL。
要克隆存储库,请在命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中运行 Git: Clone 命令,或在源代码管理视图中选择 Clone Repository 按钮。
如果您从 GitHub 克隆,VS Code 会提示您进行 GitHub 身份验证。然后,从列表中选择一个存储库克隆到您的计算机。列表包含公开和私有存储库。对于其他 Git 提供商,请输入存储库 URL。

克隆时,VS Code 会要求您选择一个本地文件夹来存储存储库。克隆完成后,您可以选择在新窗口中打开克隆的存储库。
GitHub Pull Requests and Issues 扩展通过拉取请求和问题管理增强了 GitHub 集成。了解有关 在 VS Code 中使用 GitHub 的更多信息。
发布到 GitHub
如果您有一个尚未连接到远程仓库的本地存储库,您可以直接从 VS Code 将其发布到 GitHub。
将存储库发布到 GitHub:
-
打开源代码管理视图。
-
在源代码管理视图中选择 Publish to GitHub。
-
如果提示,请登录 GitHub。
-
选择是创建公开存储库还是私有存储库。
-
选择要包含在初始提交中的文件。
VS Code 会在 GitHub 上创建一个新存储库,将其添加为远程仓库,并推送您的提交。
发布到 GitHub 是将您的本地工作在线的最快方式。它在一个步骤中创建存储库、配置远程仓库并推送您的提交。
推送、拉取和同步
推送、拉取和同步是将本地工作与远程仓库保持同步的核心操作。
推送提交
推送会将您的本地提交上传到远程存储库。要推送提交:
-
在本地提交您的更改。
-
在源代码管理视图中选择 更多操作(...) > Push。
或者,选择状态栏中的同步图标,一次性执行拉取和推送操作。如果您想推送到特定远程仓库,请使用 Push to 选项。
您还可以通过使用源代码管理图视图工具栏中的推送图标来推送本地提交。
-
如果提示,请登录以进行远程身份验证。
您的提交已上传到远程分支。其他团队成员现在可以拉取您的更改。
如果您的分支未配置上游,VS Code 会提示您先发布该分支。
拉取提交
拉取会从远程存储库下载提交并将其合并到您的本地分支。要拉取提交:
-
在源代码管理视图中选择 更多操作(...) > Pull。
或者,选择状态栏中的同步图标,一次性执行拉取和推送操作。如果您想从特定远程仓库拉取,请使用 Pull from 选项。
您还可以通过使用源代码管理图视图工具栏中的拉取图标来拉取远程提交。
-
VS Code 会下载并合并远程提交。
如果您的本地更改与远程提交之间存在冲突,VS Code 会通过 合并冲突解决工具帮助您解决它们。
拉取并变基 (Rebase)
您可以将本地提交变基到远程更改之上,而不是合并远程更改。
-
在源代码管理视图中选择 更多操作(...) > Pull (Rebase)。
-
VS Code 先应用远程提交,然后将您的本地提交重放其上。
变基会创建一个没有合并提交的线性历史记录。了解有关 Git rebase 的更多信息。
同步更改
同步结合了拉取和推送操作 - 它首先从远程拉取更改,然后推送您的本地提交。这是保持工作同步的推荐方式。
同步更改:
- 在源代码管理视图中选择 Sync Changes。
- 选择状态栏中的同步图标。

状态栏同步指示器显示您需要推送 (↑) 和拉取 (↓) 的提交数量。例如,↑2 ↓1 表示您有 2 个提交要推送,1 个提交要拉取。
配置 git.confirmSync 设置,以控制 VS Code 在同步前是否会询问确认。
抓取提交
抓取会下载远程存储库的提交,而不会将它们合并到您的本地分支。这可以让您在集成传入更改之前对其进行审查。
抓取提交:
- 在源代码管理视图中选择 更多操作(...) > Fetch。
- 选择 Fetch From All Remotes 以从所有已配置的远程仓库抓取。
- 选择 Fetch (Prune) 来抓取并删除已删除的远程分支(要始终修剪,请启用 git.pruneOnFetch 设置)。
抓取后,您可以在源代码管理图视图中审查传入的提交,然后再使用 Pull 将它们合并。
要自动在后台抓取提交,请启用 git.autofetch 设置(默认禁用)。要配置抓取间隔,请使用 git.autofetchPeriod 设置(默认 180 秒)。
状态栏同步操作
状态栏提供了对常用存储库和远程仓库操作的快速访问,无需打开源代码管理视图。
分支指示器
左下角的分支指示器显示:
- 当前分支名称:选择它可切换分支。
- 同步状态:要推送 (↑) 和拉取 (↓) 的提交数量。
- 发布状态:对于未发布的(本地)分支,显示 Publish Branch。

状态栏中的同步图标(旋转箭头)使您可以将更改与远程仓库同步(推送和拉取)。
您可以使用以下设置自定义状态栏的行为:
- git.showActionButton:控制显示哪个操作按钮(同步或提交)。
- git.showPushSuccessNotification:推送成功后显示通知。
- git.showCommitInput:在源代码管理视图中显示提交输入框。
源代码管理图
源代码管理图提供对提交历史、分支关系和与远程仓库同步状态的可视化表示。这使得理解传入和传出的更改变得容易。

图显示:
- 当前分支:用特殊指示器突出显示。
- 上游分支:显示您尚未拉取的远程分支的提交。
- 传入提交 (↓):您可以在远程仓库拉取的提交。
- 传出提交 (↑):您可以推送到远程仓库的本地提交。
- 其他分支:您存储库中的本地和远程分支。
您可以直接从图表工具栏抓取、推送和拉取。图表视图还显示传入和传出的更改,使其易于查看何时需要同步。选择图表中的某个项可查看该提交中更改的单个文件。
使用以下设置自定义源代码管理图:
- scm.graph.showIncomingChanges:显示或隐藏传入的提交。
- scm.graph.showOutgoingChanges:显示或隐藏传出的提交。
- git.graph.pageSize:初始加载的提交数量。
了解有关 使用源代码管理图查看提交历史 的更多信息。
使用存储库
存储库视图允许您在一个工作区中管理多个 Git 存储库。当处理跨多个存储库的项目时,这非常有用。存储库视图还会显示与您的存储库关联的 Git 工作树。

要显示存储库视图,请从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 Source Control: Focus on Repositories View 命令。配置 scm.alwaysShowRepositories 设置以始终在源代码管理视图中显示存储库视图。
对于每个存储库,您可以查看活动分支、同步状态,并访问抓取、拉取、推送等操作。
当您打开包含 Git 存储库的文件夹时,VS Code 会自动检测它们。如果您打开一个包含多个存储库的文件夹(例如 monorepo),所有存储库都会出现在存储库视图中。
存储库选择模式
如果您希望一次专注于单个存储库或工作树,可以切换到单存储库模式。在该模式下,您只看到所选存储库的更改和图表。当以多存储库模式运行时,源代码管理视图会显示所有存储库的更改。使用 scm.repositories.selectionMode 设置在多存储库和单存储库模式之间切换。
凭据助手
凭据助手可以安全地存储您的身份验证凭据,这样您就不必每次推送或拉取时都输入它们。您应该 设置一个凭据助手,以避免每次 VS Code 与远程存储库交互时都要求输入凭据。