phpstorm sftp部署默认无二次确认,需禁用automatic upload等三项自动上传选项,并设upload changed files only为默认模式才能实现手动上传时的文件差异确认。

部署操作默认不弹二次确认,得手动关掉自动上传
PhpStorm 的 SFTP 部署本身没有“点击上传就弹确认框”的开关,所谓“二次确认”其实是通过禁用自动上传机制,强制你每次走 Upload to 手动触发,再配合 IDE 的默认弹窗实现的。一旦勾选了 Automatic Upload 或 Transfer modified files on save,文件就静默传走了,连日志都不留——这不是漏配,是设计如此。
- 进
Settings → Build, Execution, Deployment → Deployment,选中你的 SFTP 配置 - 在
Options标签页里,**必须取消勾选全部三项**:Transfer files automatically on frame deactivation、Transfer files automatically on local changes、Transfer modified files on save - 确保
Excluded Paths里没误加*或**,否则可能跳过校验直接跳过上传逻辑
手动上传时的弹窗行为由“上传模式”决定
关掉自动上传后,右键文件 → Upload to … 或按 Ctrl+Shift+Alt+U(Windows/Linux)会弹出对话框,但这个弹窗是否可交互、是否允许跳过,取决于你当前的上传模式设置。
- 弹窗顶部有三个单选按钮:
Upload changed files only(默认)、Upload all files、Upload selected files only - 只有选中
Upload changed files only时,才会列出差异文件并让你勾选/取消;另两个模式直接执行,不给确认机会 - 若想每次必看变更列表,建议把
Upload changed files only设为默认:在同一个Options页面勾选Use "Upload changed files only" as default upload mode
别依赖“跳过已存在文件”来当确认替代
有人试图用 Skip existing files 或 Compare content 来规避误传,但这不是确认机制——它只影响覆盖逻辑,不阻断上传动作本身。比如你改了 config/database.php 并保存,如果仍开着 Transfer modified files on save,它会直接覆盖远程同名文件,连“是否跳过”都不问。
-
Compare content只在Upload changed files only模式下生效,且仅比对内容哈希,不提示你审阅差异文本 - 真正需要人工核对的场景(如上线前最后一步),建议用
Tools → Deployment → Browse Remote Host先打开远程目录,再右键目标文件夹 →Sync with Deployed to …,这个操作一定会弹完整对比面板,支持逐项勾选
复杂点在于多映射配置容易互相覆盖
如果你在同一个 Deployment 配置里设了多个本地→远程路径映射(比如 src/ → /var/www/app/src/ 和 public/ → /var/www/app/public/),那么一次 Upload to … 会同时触发所有映射下的变更检测——弹窗里混在一起列,容易看漏。这时候更稳妥的做法是:单独为关键目录(如 public/ 或 migrations/)新建一个独立的 Deployment 配置,命名清晰(如 prod-public-only),上传时明确选择它。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










