在 VS Code 中试用

源代码管理常见问题

本文回答了关于在 Visual Studio Code 中使用 Git 源代码管理和 GitHub 的常见问题。

Git

如何回滚或撤销 Git 提交?

使用 Git: Undo Last Commit 命令回滚上次提交。这将把您的分支重置到您执行提交之前的状态,包括所有更改。该命令也位于源代码管理视图顶部提交下的更多操作 ... 菜单中。

如何重命名本地分支?

使用 Git: Rename Branch… 命令将提示您输入新名称。

如何在提交前撤销 git add 操作?

暂存更改中列出的已添加文件可以使用 - 图标或通过拖放来取消暂存。

如何编辑最近的提交消息?

要更新上次本地提交的提交消息,请使用 Git: Commit Staged (Amend) 命令。它将打开一个编辑器来编辑和保存上次的消息。请确保没有其他更改被暂存,因为它们会包含在提交中。

我初始化了我的仓库,但 ... 菜单中的所有操作都变灰了

推送、拉取和同步,您需要设置一个 Git origin。您可以从仓库主机获取所需的 URL。一旦您获得该 URL,您需要通过运行几个命令行操作将其添加到 Git 设置中。例如

> git remote add origin https://github.com/<repo owner>/<repo name>.git
> git push -u origin main

我的团队使用的是 Team Foundation Version Control (TFVC),而不是 Git。我该怎么办?

使用 Azure Repos 扩展,这将启用 TFVC 支持。

为什么拉取 (Pull)、推送 (Push) 和同步 (Sync) 操作总是无法完成?

这通常意味着在 Git 中没有配置凭据管理,并且由于某种原因您没有收到凭据提示。

您可以随时设置一个凭据助手,以便从远程服务器拉取和推送,而无需 VS Code 每次提示您输入凭据。

如何使用需要多重身份验证的 Azure DevOps 组织登录 Git?

Git Credential Manager (GCM) 是适用于 Windows、macOS 和 Linux 的推荐 Git 凭据助手。如果您正在运行 Git for Windows,则已为您安装和配置了 GCM。如果您正在运行 macOS 或 Linux,GCM 的 README 包含设置说明。

我的电脑上安装了 GitHub Desktop,但 VS Code 忽略了它

VS Code 的 Git 集成仅支持官方 Git 分发版

VS Code 运行时总是弹出 Git 身份验证对话框

VS Code 会自动从服务器获取更改,以便向您呈现传入更改的摘要。Git 身份验证对话框独立于 VS Code 本身,是您当前 Git 凭据助手的一部分。

避免这些提示的一种方法是设置一个凭据助手来记住您的凭据。

另一个选项是通过更改以下设置来禁用自动获取功能:"git.autofetch": false

为什么 VS Code 会警告我 Git 仓库可能不安全?

VS Code 使用 git.exe 执行所有 Git 操作。从 Git 2.35.2 开始,由于仓库被视为可能不安全,用户无法在归非当前用户拥有的文件夹中的仓库内运行 Git 操作。

如果您尝试打开此类仓库,VS Code 会在源代码管理视图中显示欢迎视图或错误通知。欢迎视图和通知都包含管理不安全仓库命令,通过该命令您可以查看潜在不安全仓库的列表,将其标记为安全,然后打开它们。管理不安全仓库命令也可在命令面板中找到(⇧⌘P (Windows, Linux Ctrl+Shift+P))。将仓库标记为安全会将其位置添加到 safe.directory Git 配置中。

在 Windows 上,常见的情况是使用以“管理员身份”运行的应用程序(例如 Windows Terminal 或 VS Code)克隆仓库,但使用未以“管理员身份”运行的其他应用程序或实例(例如 VS Code)打开该仓库。

为什么 VS Code 没有发现工作区或打开文件的父文件夹中的 Git 仓库?

VS Code 使用 git rev-parse --show-toplevel 来确定 Git 仓库的根目录。在大多数情况下,Git 仓库的根目录位于工作区内,但在某些情况下,Git 仓库的根目录位于工作区或打开文件的父文件夹中。虽然在工作区或打开文件的父文件夹中打开 Git 仓库对于高级用户来说是一个很棒的功能,但对于新用户来说可能会令人困惑。我们见过这种混淆导致丢弃这些 Git 仓库中的更改并造成数据丢失的情况。

为避免混淆并降低数据丢失的风险,VS Code 将在源代码管理视图中显示通知和新的欢迎视图,并且不会自动打开工作区和打开文件的父文件夹中的 Git 仓库。

您可以使用 git.openRepositoryInParentFolders 设置控制如何处理父文件夹中的 Git 仓库。如果您想恢复旧的行为,请将 git.openRepositoryInParentFolders 设置为 always

我可以在 VS Code 中使用 SSH Git 身份验证吗?

可以,尽管 VS Code 最容易与没有密码的 SSH 密钥配合使用。如果您的 SSH 密钥有密码,您需要从 Git Bash 提示符启动 VS Code 以继承其 SSH 环境。

GitHub

是否支持 GitHub Enterprise?

VS Code 官方支持使用 GitHub Enterprise Server 进行身份验证。打开 GHES 仓库的本地检出,系统会提示您使用您的 GitHub Enterprise Server 帐户登录。