vs code 无直接提交代码到服务器功能,需借助sftp扩展、rsync/scp命令或git+远程钩子实现部署;sftp的remotepath决定本地路径映射关系,rsync末尾斜杠影响覆盖行为,git部署需配置bare仓库与可执行post-receive钩子。

VS Code 里没有“直接提交代码到服务器”的功能
VS Code 本身是编辑器,不是部署工具,它不内置 FTP/SFTP 上传、远程执行或自动同步逻辑。所谓“提交到服务器”,实际是本地代码通过某种方式同步/部署到远程机器——得靠扩展或外部工具配合。
常见做法有三类:用 SFTP 扩展手动上传、用 rsync 或 scp 命令行推送、或走 Git + 远程钩子自动部署。选哪种,取决于你的服务器访问方式和更新频率。
SFTP 扩展上传时,remotePath 配置错就传丢文件
装好 SFTP 扩展(如 Natizyskunk.sftp)后,必须在项目根目录建 sftp.json,其中 remotePath 是关键。它不是“服务器上的绝对路径起点”,而是你右键“Upload”时,**本地文件相对于工作区根的路径,会原样映射过去**。
一个经过完善设计的经典网上购物系统,适用于各种服务器环境的高效网上购物系统解决方案,shopxp购物系统Html版是我们首次推出的免费购物系统源码,完整可用。我们的系统是免费的不需要购买,该系统经过全面测试完整可用,如果碰到问题,先检查一下本地的配置或到官方网站提交问题求助。 网站管理地址:http://你的网址/admin/login.asp 用户名:admin 密 码:admin 提示:如果您
- 本地路径是
src/index.js,remotePath: "/var/www"→ 上传到服务器的/var/www/src/index.js - 如果想传到
/var/www/index.js,就得设remotePath: "/var/www"并把文件放在工作区根,或改用uploadOnSave+files规则匹配 -
ignore列表写错会导致node_modules或.git被传上去,拖慢速度还占空间
用终端跑 rsync 比图形化更可控,但权限和路径空格容易翻车
VS Code 内置终端(Ctrl+`)里执行 rsync 是轻量部署的常用选择,尤其适合 CI 前手动验证。但它对路径、用户权限、SSH 配置敏感。
- 别用
rsync -av ./ user@host:/path—— 末尾斜杠决定是“覆盖目录内容”还是“覆盖目录本身”,/path/和/path行为完全不同 - 路径含空格?必须用单引号包裹,比如
'user@host:/home/user/my project',双引号或不包都会报bash: syntax error - 提示
Permission denied (publickey)?不是密码错了,是本地没配好 SSH key,或者服务器/etc/ssh/sshd_config关了PubkeyAuthentication yes
Git 推送到服务器需提前配好 bare repo 和 post-receive 钩子
这种方式适合生产环境,但 VS Code 只负责 git push,真正的“落地”靠服务器上的一段 shell 脚本。很多人卡在钩子没生效,其实是权限或工作树路径不对。
- 服务器上不能用
git init普通仓库,得建git init --bare /path/to/repo.git -
post-receive钩子里的git --work-tree=/var/www checkout -f必须指定绝对路径,且/var/www所属用户要和 git 用户一致,否则权限拒绝 - VS Code 提交时看到
remote: fatal: not a git repository?八成是钩子文件没加执行权限:chmod +x post-receive
真正麻烦的不是哪一步不会做,而是每种方式都依赖一个隐性前提:你知道服务器上谁在运行代码、文件归谁所有、磁盘有没有空间、防火墙放没放端口。漏查一项,就卡在“看起来配置全对,就是不动”。









