如何在VS Code中将远程文件同步回本地?
如何在VS Code Remote-SSH中将远程代码同步回本地Windows(WSL环境)
一、用VS Code插件实现反向同步
1. Remote Sync 插件
这个插件支持双向同步,可直接配置为远程→本地的反向同步:
- 在本地VS Code安装
Remote Sync插件(插件安装在本地,而非远程环境) - 连接到远程工作区后,打开设置(
Ctrl+,),搜索remoteSync完成配置:remoteSync.remotePath:填写远程代码根目录(例如/home/your-username/remote-project)remoteSync.localPath:填写本地WSL对应的代码路径(例如/mnt/c/Users/your-username/local-project,对应Windows的C:\Users\your-username\local-project)remoteSync.syncDirection:设置为remoteToLocal- 可选:开启
remoteSync.autoSync,实现远程文件保存时自动同步到本地
- 手动同步:打开命令面板(
Ctrl+Shift+P),执行Remote Sync: Sync Now即可触发同步
2. SFTP 插件
虽常用于本地→远程推送,但可配置反向拉取任务:
- 在本地VS Code安装
SFTP插件 - 在远程工作区根目录创建
.vscode/sftp.json配置文件,示例如下:
{ "name": "Remote Server", "host": "你的远程服务器IP", "protocol": "sftp", "port": 22, "username": "你的远程用户名", "remotePath": "/home/your-username/remote-project", "localPath": "/mnt/c/Users/your-username/local-project", "uploadOnSave": false, "downloadOnOpen": false }
- 手动拉取:打开命令面板,执行
SFTP: Pull,即可将远程代码同步到本地指定路径
二、自定义VS Code任务实现rsync同步
如果不想依赖插件,可在远程工作区配置自定义任务,直接调用rsync完成同步:
- 打开命令面板,执行
Tasks: Configure Task,选择Create tasks.json from template→Other - 在生成的
tasks.json中写入以下配置:
{ "version": "2.0.0", "tasks": [ { "label": "Sync Remote → Local", "type": "shell", "command": "rsync -avz --exclude='.git' --exclude='node_modules' ${workspaceFolder}/ /mnt/c/Users/your-username/local-project/", "problemMatcher": [], "group": { "kind": "build", "isDefault": true }, "runOptions": { "runOn": "folderOpen" // 可选:打开远程工作区时自动执行同步 } } ] }
- 执行同步:打开命令面板,执行
Tasks: Run Task,选择Sync Remote → Local即可;也可绑定快捷键(在Keyboard Shortcuts中搜索tasks.run,绑定到自定义快捷键)
三、注意事项
- 路径转换:WSL中访问Windows本地文件需用
/mnt/盘符/开头的路径,确保配置的本地路径正确对应Windows目录 - 权限问题:确保rsync命令有足够权限读取远程文件,且本地WSL路径有写入权限
- 排除冗余文件:通过
--exclude参数跳过.git、node_modules等无需同步的目录,提升同步效率
内容的提问来源于stack exchange,提问作者manestay
相关产品推荐
相关产品推荐

