使用仓库和远程设备

git仓库和远程设备允许你通过在不同地点同步工作与他人协作。VS Code 提供了集成工具,无需命令行 Git 知识即可作远程仓库。

本文将介绍如何使用Git仓库和远程设备,包括克隆、发布、同步变更以及在VS Code中管理多个仓库。

理解遥控器

远程存储器是托管在其他服务器上的 Git 仓库,如 GitHub、Azure DevOps 或 GitLab。远程技术通过提供一个集中地点,团队成员可以分享工作,从而实现协作。

当你克隆一个仓库时,Git 会自动创建一个名为起源这指向了原始仓库。如果你需要与不同的服务器或仓库交互,可以同时使用多个远程设备。

使用远程设备主要包含三个作:

  • 取物:从远程下载提交,但不更改你的工作文件。这样你就能看到别人做了什么,而不用把他们的改动合并进你的作品里。

  • 拉取:从远程下载提交并合并到当前分支。这是一次取取加合并作。

  • 推送:将你的本地提交上传到远程,让其他人访问你的更改。

本地和远程仓库之间 Git 取取、拉取和推送作的示意图。

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

加个遥控器

要向你的仓库添加一个新的远程器:

  1. 在源控制器视图(⌃⇧G(Windows,Linux Ctrl+Shift+G)中,选择“更多作”(...)>“遥控器”>添加“遥控器

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

  2. 输入远程网址

  3. 输入遥控器名称(例如,上游)

你的仓库现在多了一个远程,可以获取或推送。

使用类似步骤移除遥控器(Git:移除远程)。

克隆仓库

克隆会在你的机器上创建远程仓库的本地副本。克隆后的仓库包含了远程的所有分支、提交和历史记录。默认情况下,Git 会配置一个名为起源指向你克隆的URL。

要克隆仓库,请在命令面板中运行 Git: Clone 命令(Windows,Linux 的 Ctrl+Shift+P),或在源代码控制视图中选择 Clone 仓库按钮。

如果你从 GitHub 克隆,VS Code 会提示你通过 GitHub 认证。然后,从列表中选择一个仓库克隆到你的机器。该列表包含公共和私人存储库。对于其他 Git 提供者,请输入仓库 URL。

VS Code 中克隆仓库提示的截图。

克隆时,VS Code 会让你选择本地文件夹来存储仓库。克隆后,你可以选择在新窗口中打开克隆后的仓库。

GitHub 拉取请求与问题扩展增强了 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 通过合并冲突解决工具帮助你解决。

用拉底换底

你可以在远程更改基础上重新基于本地提交,而不是合并远程更改:

  1. 在源控视图中选择更多作...)>拉取(重新基准)

  2. VS Code 先应用远程提交,然后再重放本地提交

重新基准创建线性历史,无需合并提交。了解更多关于Git重基的信息。

同步变化

同步结合了拉取和推送作——先从远程拉取更改,然后推送本地提交。这是保持工作同步的推荐方法。

要同步更改:

  • 在源控制器视图中选择同步更改
  • 在状态栏中选择同步图标

源控视图中同步更改按钮的截图。

状态栏同步指示器显示你需要推送(↑)和拉取(↓)的提交数量。例如,↑2 ↓1这意味着你有两个提交要推送,一个提交要拉取。

提示

配置

git.confirm同步
  • 在VS代码中打开
  • 在VS Code Insiders中开放
设置以控制 VS Code 是否在同步前要求确认。

获取提交

获取时会从远程仓库下载提交,但不会合并到本地分支。这让你可以在整合变更前先审查。

获取提交:

  • 在源控制器视图中选择更多作...)>取用
  • 选择“从所有远程获取”以从所有配置的远程获取
  • 选择取物(修剪)以获取并移除已删除的远程分支(要始终修剪,请启用
    git.pruneOnFetch
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    背景)

取回数据后,你可以在与 Pull 合并前,在 Source Control Graph 中查看收到的提交。

要在后台自动获取提交,请启用

git.autofetch
  • 在VS代码中打开
  • 在VS Code Insiders中开放
设置(默认禁用)。要配置取指间隔,请使用
git.autofetchPeriod(即句号)
  • 在VS代码中打开
  • 在VS Code Insiders中开放
设置(默认180秒)。

状态栏同步作

状态栏提供快速访问公共仓库和远程作,无需打开源控视图。

分支指示器

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

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

状态栏截图,显示分支指示器和同步状态。

状态栏中的同步图标(旋转箭头)可以让你将更改与遥控器同步(推拉)。

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

  • git.showActionButton
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    : 控制显示哪个动作按钮(同步或提交)
  • git.showPushSuccessNotification
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    : 成功推送后显示通知
  • git.showCommitInput
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    :在源代码控制视图中显示提交输入

源控图

源控制器图提供了提交历史、分支关系以及与远程设备的同步状态的可视化表示。这使得进出变化变得容易理解。

源代码控制图截图,显示提交历史和进出提交。

图表显示:

  • 当前分支:用特殊指示器高亮显示
  • 上游分支:显示你还没拉取的远程提交
  • 入站提交(↓):你可以拉取的远程提交
  • 出提交(↑):你可以推送的本地提交
  • 其他分支:你仓库中的本地和远程分支

你可以直接从图表工具栏里取取、推、拉。图表视图还会显示进出的变化,方便你看到什么时候需要同步。在图表中选择一个项目,查看该提交中被更改的各个文件。

通过以下设置自定义源控制图:

  • scm.graph.show即将来变
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    : 显示或隐藏收到的提交
  • scm.graph.show 离职变更
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    : 显示或隐藏出提交
  • git.graph.pageSize
    • 在VS代码中打开
    • 在VS Code Insiders中开放
    : 初始加载提交次数

了解更多关于使用源控制图查看提交历史的信息。

与仓库合作

仓库视图允许您在单一工作区管理多个 Git 仓库。这在处理跨多个仓库的项目时非常有用。仓库视图还显示与仓库关联的 Git 工作树

VS Code 中仓库视图的截图,显示多个 Git 仓库。

要显示仓库视图,请从命令面板中执行“源代码控制:聚焦仓库视图”命令(⇧⌘P(Windows,Linux Ctrl+Shift+P)。配置

scm.alwaysShowRepositories
  • 在VS代码中打开
  • 在VS Code Insiders中开放
设置为始终在源代码控制视图中显示仓库视图。

对于每个仓库,你可以看到活动分支、同步状态,以及访问作如取用、拉取、推送等。

当你打开包含 Git 仓库的文件夹时,VS Code 会自动检测到这些仓库。如果你打开一个包含多个仓库的文件夹(比如单仓库),所有仓库都会显示在仓库视图中。

存储库选择模式

如果你更喜欢一次专注于单个仓库或工作树,可以切换到单一仓库模式。在那个模式下,你只看到所选仓库的变更和图表。在多仓库模式下运行时,源控制器视图显示所有仓库的变化。使用该

scm.repositories.selectionMode
  • 在VS代码中打开
  • 在VS Code Insiders中开放
设置为在多仓库和单仓库模式之间切换。

凭证辅助工具

凭据助手会安全地存储你的认证凭据,这样你每次推送或拉取时都不必输入。你应该设置一个凭证助手,避免每次VS Code与远程仓库交互时都被要求提供凭证。

下一步