本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

与仓库和远程仓库一起工作

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

本文涵盖了在 VS Code 中使用 Git 仓库和远程仓库,包括克隆、发布、同步更改以及管理多个仓库。

理解遥控器

远程仓库是托管在其他服务器上的Git仓库,例如GitHub、Azure DevOps或GitLab。远程仓库通过提供一个中央位置,使团队成员能够分享他们的工作,从而实现协作。

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

与远程服务器交互涉及三个主要操作:

  • 获取:从远程下载提交记录而不更改你的工作文件。这样你就可以查看其他人做了什么,而不会将他们的更改合并到你的工作中。

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

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

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

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

添加远程

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

  1. 在源代码控制视图中 (⌃⇧G (Windows, Linux Ctrl+Shift+G)),选择 More Actions (...) > Remotes > Add Remote

    或者,从命令面板运行Git: 添加远程命令(⇧⌘P(Windows, Linux Ctrl+Shift+P)。

  2. 输入远程网址

  3. 输入远程名称(例如,上游)

您的仓库现在有一个额外的远程仓库,您可以从中拉取或推送到该仓库。

使用类似的步骤来删除一个远程 (Git: 删除远程)。

克隆仓库

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

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

如果你从GitHub克隆,VS Code会提示你使用GitHub进行身份验证。然后,从列表中选择一个仓库克隆到你的机器上。列表包含公共和私有仓库。对于其他Git提供商,请输入仓库URL。

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

克隆时,VS Code 会要求您选择一个本地文件夹来存储仓库。克隆完成后,您可以选择在新Windows中打开克隆的仓库。

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 会通过合并冲突解决工具帮助您解决这些问题。

拉取并进行合并

与其合并远程更改,您可以将本地提交基于远程更改进行变基:

  1. 选择 更多操作 (...) > 在源代码控制视图中拉取 (合并)

  2. VS Code 先应用远程提交,然后在顶部重播你的本地提交

变基创建了一个没有合并提交的线性历史记录。了解更多关于Git变基的信息。

同步更改

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

同步更改:

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

源代码控制视图中“同步更改”按钮的截图。

状态栏的同步指示器显示了您需要推送 (↑) 和拉取 (↓) 的提交次数。例如,↑2 ↓1意味着你需要推送2次提交并拉取1次提交。

小贴士

配置

git.确认同步
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置以控制VS Code在同步前是否询问确认。

获取提交

从远程仓库获取下载提交,而不将其合并到你的本地分支。这使你能够在整合它们之前审查传入的更改。

获取提交:

  • 选择 更多操作 (...) > 在源代码控制视图中获取
  • 选择从所有远程获取从所有配置的远程获取
  • 选择获取(修剪) 以获取并删除远程已删除的分支(要始终修剪,请启用
    git.拉取时修剪
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    设置)

获取后,您可以在合并之前在源代码控制图中查看传入的提交拉取

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

git.自动获取
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置(默认禁用)。要配置获取间隔,请使用
git.自动拉取周期
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
设置(默认180秒)。

状态栏同步操作

状态栏提供了快速访问常见代码库和远程操作的功能,无需打开源代码控制视图。

分支指示器

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

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

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

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

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

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

源代码控制图

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

源代码管理图的截图,显示提交历史和入站/出站提交。

图表显示:

  • 当前分支:用特殊指示器突出显示
  • 上游分支:显示你在远程上尚未拉取的提交
  • 即将到来的提交 (↓): 您可以拉取的远程提交
  • 待推送的提交 (↑): 你可以推送的本地提交
  • 其他分支:在你的仓库中的本地和远程分支

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

使用这些设置自定义源控制图:

  • scm.graph.显示入站更改
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    显示或隐藏即将到来的提交
  • scm.graph.showOutgoingChanges
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    显示或隐藏流出提交
  • git.graph.pageSize
    • 在 VS Code 中打开
    • 在 VS Code Insiders 中打开
    : 初始加载的提交数量

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

与仓库合作

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

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

要显示“Repositories”视图,请在命令面板中运行Source Control: Focus on Repositories View命令(⇧⌘P(Windows, Linux Ctrl+Shift+P)。配置

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

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

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

仓库选择模式

如果您更喜欢一次只关注一个代码库或工作区,您可以切换到单代码库模式。在这种模式下,您只能看到所选代码库的更改和图表。在多代码库模式下操作时,源代码控制视图显示所有代码库的更改。使用

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

凭证助手

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

下一步