2026a

# 仓库与远程


本章节将详细介绍仓库与远程相关的功能,包括添加远程、克隆仓库、推送、拉取和同步等功能。

# 什么是远程仓库

远程仓库是指托管在另一台服务器上的 Git 仓库,例如 GitHub、Azure DevOps 或 GitLab。远程仓库通过提供一个中央位置,使团队成员能够共享他们的工作,从而实现协作。当您克隆一个仓库时,Git 会自动创建一个名为 origin 的远程仓库,它指向原始仓库。如果您需要与不同的服务器或仓库交互,您可以使用多个远程仓库。与远程仓库的交互涉及三个主要操作:

  • 抓取(Fetch):从远程下载提交,但不更改您的工作文件。这让您可以查看其他人做了什么,而无需将他们的更改合并到您的工作中;

  • 拉取(Pull):从远程下载提交并将它们合并到您的当前分支。这是一个包含抓取和合并的操作;

  • 推送(Push):将您的本地提交上传到远程,以便其他人可以访问您的更改。(当您推送时,Git 需要知道将您的提交发送到哪个远程。默认情况下,Git 使用为您的当前分支配置的上游分支。如果没有设置上游,Syslab 会提示您发布分支并设置上游)。

# 添加远程

如果您想要添加远程仓库,可以按照以下步骤进行:

  1. 打开源代码管理(Ctrl+Shift+G),单击右上角的视图和更多操作,选择远程,右侧二级菜单中选择添加远程存储库...,输入远程 URL 或者选择仓库源;

  2. 选择从 GitHub 添加远程存储库后,输入远程名称;

  3. 添加成功后,您的仓库有一个额外的远程,您可以从中拉取或推送。

# 克隆仓库

克隆会在您的机器上创建远程仓库的本地副本。克隆的仓库包含远程仓库的所有分支、提交和历史记录。默认情况下,Git 会配置一个名为 origin 的远程仓库,指向您克隆的 URL。如果您想要克隆操作,可以按照以下步骤进行:

  1. 当您的资源管理器中没有已打开的文件夹时,打开源代码管理(Ctrl+Shift+G),选择克隆仓库或者打开命令面板(Ctrl+Shift+P),输入 Git:Clone

  2. 输入仓库 URL(例如,https://github.com/microsoft/PowerToys),如果您是从 GitHub 克隆,还可以登录您的 GitHub 账户,从您的仓库列表中克隆。本示例中通过 GitHub 账户克隆;

  3. 选择电脑上的一个父文件夹来保存项目;

  4. 在 Syslab 中选择打开已克隆的仓库。

# 推送、拉取和同步

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

# 推送提交

推送会将您的本地提交上传到远程仓库。要推送提交,可以按照以下步骤进行:

  1. 本地先提交您的所有更改;

  2. 打开源代码管理(Ctrl+Shift+G),单击右上角的视图和更多操作,选择推送

  3. 如果您想要推送到指定的远程,打开源代码管理(Ctrl+Shift+G),单击右上角的视图和更多操作,选择拉取,推送,右侧二级菜单中选择推送到...,弹出的远程仓库列表中选择您要推送提交的远程仓库;

  4. 推送提交成功后,您的提交就已上传到远程分支。其他团队成员现在可以拉取您的更改。

# 拉取提交

拉取会从远程仓库拉取下载提交并将其合并到您的本地分支。要拉取提交,可以按照以下步骤进行:

  1. 打开源代码管理(Ctrl+Shift+G),单击右上角的视图和更多操作,选择拉取

  2. 如果您想要拉取自指定的远程,打开源代码管理(Ctrl+Shift+G),单击右上角的视图和更多操作,选择拉取,推送,右侧二级菜单中选择拉取自...,弹出的远程仓库列表中选择您要拉取的远程仓库;

  3. Syslab 会下载并合并远程提交,如果您的本地更改与远程提交存在冲突,可以参考分支与解决合并冲突章节来处理它们。

# 抓取提交

如果您想从远程仓库获取下载的提交,但不将它们合并到本地分支,仅用于您在集成它们之前审查传入的更改,可以使用抓取提交。想要抓取提交,可以按照以下步骤进行:

  1. 打开源代码管理(Ctrl+Shift+G),单击右上角的视图和更多操作,选择抓取

  2. 抓取后,您可以在合并到 Pull 之前在源代码图中查看传入的提交。

# 使用 rebase 拉取

不同于直接合并远程更改,您还可以在远程更改之上变基本地提交。要 rebase 拉取,可以按照以下步骤进行:

  1. 打开源代码管理(Ctrl+Shift+G),单击右上角的视图和更多操作,选择拉取,推送,右侧二级菜单中选择拉取(变基)

  2. Syslab 先应用远程提交,然后在上面重放本地提交,rebase 会创建一个线性的历史记录,没有合并提交记录。

# 同步更改

同步操作结合了 pullpush 操作,它首先从远程拉取更改,然后推送您的本地提交。要同步更改,有以下两种方式:

  • 打开源代码管理(Ctrl+Shift+G),选择同步更改

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