PhpStorm - 如何只上传修改过的文件?

时间:2013-06-19 10:15:41

标签: phpstorm

我在PhpStorm有一个项目。我在根文件夹上按upload to ftp,所有文件都上传到服务器。然后我在这个项目上工作 - 让我们说修改一个文件。 当我现在按upload to ftp时,我会看到所有文件都再次上传 - 但在上次上传后,它们未修改

我不想在显式保存操作上自动上传 settings → deployment → options中的设置覆盖最新文件 未选中

与已部署的同步不是一个解决方案,因为一个项目是巨大的蚂蚁,比较每个文件的内容是浪费资源和时间。

如何仅上传修改过的文件?

5 个答案:

答案 0 :(得分:6)

转到文件>设置,在项目设置上选择部署。添加FTP服务器并将其标记为默认值。单击“确定”关闭对话框窗口。

现在转到工具>部署>选项。选择您所看到的动作触发器: 自动将更改的文件上传到默认服务器

我希望它有所帮助!

http://www.jetbrains.com/phpstorm/webhelp/uploading-and-downloading-files.html#automaticUploadOnUpdate

答案 1 :(得分:1)

首先,我不建议在需要安全性的项目中使用FTP。(通过FTP连接密码和数据以非加密格式传输,因此可以轻松窃取。只有当上传的文件(可能是包)被签名并且在对它们做任何事情之前在服务器上检查了数字签名时才会出现异常.Afaik。PHAR是默认的lib,但它相对容易加密和签名任何zip文件,如果你将签名放入文件名中。不要将数字签名与md5或sha1哈希混淆。)

通过简单的FTP项目,我使用git-ftp

安装(通过Windows,但我认为它也适用于每个系统)

git bash
$ cd ~
$ git clone https://github.com/git-ftp/git-ftp git-ftp.git
$ cd git-ftp.git && chmod +x git-ftp
$ cp ~/git-ftp.git/git-ftp /bin/git-ftp

配置

.git/config
      [git-ftp "myscope"]
        url = ftp.domain.com/subdir
        user = user
        password = pass

初​​始化

git-ftp catchup -s myscope //by this the FTP and the local copy must be in perfect sync

上传

git ftp push -s myscope

您必须使用.git-ftp-ignore文件来定义您不想上传的内容。

我通常使用git-ftp与git merge和commit hooks。

.git/hooks/post-commit
.git/hooks/post-merge

    #!/bin/sh
    branch=`git rev-parse --abbrev-ref HEAD`
    if [ $branch == "master" ]; then
        git ftp push -s myscope
    fi

通过主分支的任何更改自动上传这些git-ftp。 Ofc我只使用master分支发布,对于开发我使用另一个分支......

答案 2 :(得分:0)

最佳实践惯例: PHPStorm是围绕通常被认为是“最佳实践”的设计而设计的。考虑到这一点,通过使用版本控制系统可以最好地利用部署的许多方面。当您通过PHPStorm提交时,提交对话框提供了将更改列表中的文件显式部署到特定服务器的选项(默认值是可配置的)

备选方案1: 可以选择“与部署到 yourhost 同步”,可用于将远程服务器文件与本地文件进行比较。 “项目窗格” - >(右键单击文件夹或文件) - >部署 - >“与部署同步到...”

此选项启动一个diff应用程序,用于比较您选择的文件/文件夹以及应采取的操作的提示(即与部署服务器的同步方向)

我只在目标文件集上使用此功能,因为它存在大量文件的性能问题(例如我的整个项目)。

备选方案2: 对于小文件集。使用“显式保存”选项暂时打开自动部署,然后重新保存文件。

答案 3 :(得分:0)

选中自动上传后,即使在我完成对PHP文件的所有更改之前,我甚至在点击“保存”按钮并导致INCOMPLETE脚本文件之前,它就会自动上传文件。它还在其他标签页中上传文件。看起来在PhpStorm上没有对上传的精确控制。

答案 4 :(得分:0)

使用PHPStorm(Ctrl + K)提交项目

它将打开一个包含很多选项的窗口,以简化提交工作

此外,还有“提交后”标签,您可以从先前配置的默认服务器(工具>部署)中进行选择,以将文件上传到

通过这种方式,在VCS的帮助下,只有更改过的文件才能上传到您的服务器