自动生成升级包(git)

    笔者想制作一个工具,可以很快速的从git控制下的目录中,找出所有有更改的文件,并且形成升级包,以便于到服务器上的升级工作。
(我们需要将升级包copy到服务器之后,直接将升级包的内容覆盖,就可以完成升级 )
以前这个升级包总是手动创建,很麻烦,尤其是如果文件比较分散的时候,更是如此。

大致思路:
1. 可以使用 git diff --name-only 可以得到一个列表 (这里只显示还没有commit的文件列表)
crontabs/php/create_data_into_sku_flowtype_storage.php
crontabs/php/crontab_script_base_import_to_db.php
这个列表中就包含了所有新建或者修改的目录和文件,只需要按照这个清单“抓药“就好了

2. 根据这个文件中提示的信息,进行逐行分解,得到相应的路径
crontabs/php/create_data_into_sku_flowtype_storage.php
然后,判断这个信息指定的父路径(crontabs/php/)是否存在。
不存在,就依次创建。
再判断这个 是否是目录,如果是,则在目标路径下增加相应的目录(不要复制),
如果不是目录(是文件),那么就复制。

注意目录一概不要复制。

另外,可以使用  git log --oneline 查看历史

参考资料:
陈杰斌, 《git提取出两个版本之间的差异文件并打包》, 2013-09-11, http://www.01happy.com/git-extract-different-files/

猜你喜欢

转载自hellosoft.iteye.com/blog/2227527
今日推荐