尝试以扩展 VS Code 中的代理模式!

源代码管理常见问题

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

Git

如何还原或撤销 Git 提交?

使用Git: 撤销上次提交命令还原你的上次提交。这会将你的分支重置到提交之前的状态,包括所有更改。该命令也可作为菜单项在源代码管理视图顶部提交下的更多操作 ... 中找到。

如何重命名本地分支?

Git: 重命名分支… 命令将提示你输入新名称。

如何在提交之前撤销 git add?

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

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

要更新上次本地提交的提交消息,请使用Git: 暂存提交 (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 版本控制 (TFVC) 而不是 Git。我该怎么办?

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

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

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

你可以始终设置一个凭据帮助程序,以便从远程服务器拉取和推送,而无需 VS Code 每次都提示你输入凭据。

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

Git 凭据管理器 (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 仓库:git.openRepositoryInParentFolders。如果你想恢复旧的行为,请将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 Server 帐户登录。