VS Code通过SSH连接CentOS虚拟机时Git功能偶发消失问题求助
问题解决方案
1. 工作目录校验
- 首先确认VS Code当前打开的根目录是否为项目根目录:SSH重连后VS Code经常默认打开登录用户的家目录,而非之前打开的项目路径。可在终端执行
pwd输出当前路径,核对是否与包含.git文件夹的项目路径一致。 - 路径确认无误后,执行
ls -la .git检查.git目录是否存在、权限是否归当前登录用户所有。如果权限异常,执行sudo chown -R 当前用户名:当前用户组 项目根目录路径修复权限。
2. Git与VS Code插件缓存修复
- 如果路径和.git目录都正常,先直接在终端执行
git status:- 若终端可以正常输出Git状态信息,说明是VS Code内置Git插件的缓存异常,按
Ctrl+Shift+P(Windows/Linux)/Cmd+Shift+P(Mac)呼出命令面板,执行Developer: Reload Window重载窗口即可恢复Git相关功能。 - 若终端也报相同的not a git repository错误,可先备份索引文件后重置Git索引:执行
cp .git/index .git/index.bak && git reset即可修复损坏的索引文件,操作不会丢失已写的代码变更。
- 若终端可以正常输出Git状态信息,说明是VS Code内置Git插件的缓存异常,按
3. 虚拟机存储与挂载问题排查
- 确认你的项目目录是否存放在
/tmp等临时文件系统、临时挂载的共享目录下,这类目录会被系统定期清理,可能导致.git目录被误删。 - 查看虚拟机系统日志
/var/log/messages,排查是否存在磁盘IO错误、分区挂载中断的相关记录,若存在存储异常先修复对应问题。
4. SSH连接稳定性优化
- 在VS Code的SSH扩展设置中开启
Remote.SSH: Persistent Sessions配置,避免SSH重连后工作上下文丢失。 - 也可以在本地SSH配置文件(
~/.ssh/config)对应主机的配置块中添加ServerAliveInterval 60参数,每60秒发送一次心跳包保持SSH连接稳定,避免会话超时断开。
内容的提问来源于stack exchange,提问作者Tekin alp
相关产品推荐
相关产品推荐

