源代码控制常见问题解答

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

Git

如何还原或撤销Git提交?

Git: 撤销最后提交命令还原你上一次提交。这会让你的分支重置到提交前的状态,包括所有更改。该命令也可在“更多作”菜单中使用 ...在源代码控制视图顶部的提交状态下。

如何重命名本地分支机构?

Git:重命名分支......命令会提示你填写新名字。

如何在提交之前撤销 git 添加?

阶段变更中列出的新增文件可以通过 - 图标或拖放方式进行解除分级。

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

要更新最后一个本地提交的提交信息,请使用Git: Commit Staged (Amend)命令。它会打开编辑器来编辑并保存最后一条消息。确保没有其他更改被分阶段处理,因为它们会随提交包含。

我已经初始化了我的仓库,但作中...菜单全都变灰了

要推送、拉取和同步,你需要设置一个 Git 起源。你可以从仓库主机获取所需的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 凭证助手。如果你用的是 Windows 版 Git,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 仓库的根节点位于工作区的父文件夹或打开的文件中。虽然在工作区的父文件夹中打开Git仓库或打开文件对高级用户来说是个很棒的功能,但对新用户来说可能会感到困惑。我们见过这种混淆导致从这些Git仓库丢弃变更,导致数据丢失的情况。

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

你可以通过以下方式控制父文件夹中的 Git 仓库的处理方式,

git.openRepositoryInParentFolders
  • 在VS代码中打开
  • 在VS Code Insiders中开放
环境。如果你想恢复旧的行为,可以设置
git.openRepositoryInParentFolders
  • 在VS代码中打开
  • 在VS Code Insiders中开放
设置为永远.

我可以用 VS Code 进行 SSH Git 认证吗?

是的,不过 VS Code 最容易用 SSH 键,没有密码短语。如果你有带有密码短语的SSH密钥,你需要通过Git Bash提示启动VS代码,才能继承它的SSH环境。

GitHub

GitHub Enterprise 是否被支持?

VS Code 官方支持与 GitHub 企业服务器的认证。打开 GHES 仓库的本地借出窗口,系统会提示你用 GitHub Enterprise Server 账户登录。

故障排除

如需诊断和解决 Git 问题的帮助,请参阅故障排除指南。本指南涵盖了如何使用Git输出日志以及启用跟踪日志以获取详细诊断信息。