Php 使用git生成要通过FTP上载的文件夹
我有一个PHP项目(一个wordpress插件)。当我需要将此项目发布到远程测试或生产服务器时,我必须通过通用FTP发送文件。为了不上传所有文件,我只想从上一次构建中获得修改过的文件 有没有一种方法可以使用GIT,在给定两个不同的分支或提交的情况下,使用在这两个分支/提交之间更改或添加的文件创建一个文件夹。这将给我所有的文件,我必须上传 我尝试过使用Php 使用git生成要通过FTP上载的文件夹,php,git,Php,Git,我有一个PHP项目(一个wordpress插件)。当我需要将此项目发布到远程测试或生产服务器时,我必须通过通用FTP发送文件。为了不上传所有文件,我只想从上一次构建中获得修改过的文件 有没有一种方法可以使用GIT,在给定两个不同的分支或提交的情况下,使用在这两个分支/提交之间更改或添加的文件创建一个文件夹。这将给我所有的文件,我必须上传 我尝试过使用git diff branch1..branch2>result.diff,但这会给我一个包含所有更改的文本文件,这对FTP上载过程没有帮助,我想按
git diff branch1..branch2>result.diff
,但这会给我一个包含所有更改的文本文件,这对FTP上载过程没有帮助,我想按照相同的文件夹结构将所有更改/添加的文件复制到一个文件夹中,这样我就可以上载这个文件夹了
编辑:
基于@LeGEC answer,我编写了一个小的命令行实用程序,用于读取gitDiff的结果并生成一个包含这些文件的文件夹。如果有人感兴趣,请访问GitHub:
您可以尝试以下方法之一:
git diff --name-only
git diff --name-status
看看哪一个最适合你的需要
git diff
还有一个--diff filter
选项,在这种情况下,您可能希望将该选项与--no renames
组合使用,以便重命名的文件正确显示在“deleted”列表中:
git diff--stat
将显示已更改文件的列表。从分支(工作目录)复制它们并按您的意愿共享。这是否回答了您的问题?
# list the files whose content has been modified, and should be copied :
git diff --no-renames --name-only --diff-filter=ACM
# list the files that have been deleted from the repo, and should be *removed* :
git diff --no-renames --name-only --diff-filter=D