源代码管理常见问题解答
本主题解答了有关在 Visual Studio Code 中使用 Git 源代码管理和 GitHub 的常见问题解答。
Git
如何恢复或撤销 Git 提交?
使用 **Git: 撤销上次提交** 命令恢复您的上次提交。这将把您的分支重置到您进行提交之前的状态,包括所有更改。该命令也可以作为 **提交** 上方 **源代码管理** 视图中 **更多操作** `...` 下的菜单使用。
如何重命名本地分支?
**Git: 重命名分支…** 命令将提示您输入新名称。
如何在提交之前撤销 git add?
**暂存更改** 中列出的已添加文件可以使用 **-** 图标或拖放来取消暂存。
如何编辑最新的提交消息?
要更新上次本地提交的提交消息,请使用 **Git: 提交暂存更改(修正)** 命令。它将打开一个编辑器来编辑和保存最后一条消息。请确保没有其他更改被暂存,因为它们将包含在提交中。
我已经初始化了我的仓库,但 `...` 菜单中的操作都显示为灰色
要 **推送、拉取和同步**,您需要设置 Git 来源。您可以从存储库主机获取所需的 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 支持生效。
为什么拉取、推送和同步操作永远无法完成?
这通常意味着 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 终端或 VS Code)克隆存储库时,但使用另一个应用程序或实例(例如,VS Code)打开存储库,而该应用程序或实例没有“以管理员身份运行”。
为什么 VS Code 无法在工作区或打开文件的父文件夹中发现 Git 存储库?
VS Code 使用 git rev-parse --show-toplevel
来确定 Git 存储库的根目录。在大多数情况下,Git 存储库的根目录位于工作区内,但有些情况下,Git 存储库的根目录位于工作区或打开文件(s)的父文件夹中。虽然在工作区或打开文件的父文件夹中打开 Git 存储库对于高级用户来说是一个很棒的功能,但对于新用户来说可能会令人困惑。我们已经看到,这种困惑会导致从这些 Git 存储库中丢弃更改,从而导致数据丢失。
为避免混淆,并减少数据丢失的风险,VS Code 将显示通知和源代码管理视图中的新欢迎视图,并且不会自动打开来自工作区和打开文件的父文件夹的 Git 存储库。
您可以使用 git.openRepositoryInParentFolders 设置来控制如何处理来自父文件夹的 Git 存储库。如果您想恢复旧的行为,请将 git.openRepositoryInParentFolders 设置为 always
。
我可以将 SSH Git 身份验证与 VS Code 一起使用吗?
是的,尽管 VS Code 最容易使用没有密码的 SSH 密钥。如果您有带有密码的 SSH 密钥,则需要从 Git Bash 提示符启动 VS Code 以继承其 SSH 环境。
GitHub
GitHub Enterprise 是否受支持?
VS Code 正式支持使用 GitHub Enterprise 服务器进行身份验证。打开 GHES 存储库的本地签出,系统将提示您使用您的 GitHub Enterprise 服务器帐户登录。