emmmmmmm,博客长草半年了,期间也没写什么有深度的文章,真是惭愧惭愧。

于是今天呢,还是写篇没啥营养的文章…

 

起因呢,可以说一说。

公司没有成型的发布系统,现在项目的发布呢,新项目可以直接通过 Git 发布,很简单;我这个项目组的项目呢,有些(liang)年(nian)头(ban)了,发布还需要从 Git 拷贝文件到 SVN,然后通过生产环境的 Shell 发布,麻烦点;还有个更久远的项目,要靠找文件手动更新,很麻烦。

今天,又到了几周一次的迭代发布的时候了,公司小伙伴从修改的项目中,花了 X 分钟,捞出了修改的文件,我又花了 Y 分钟才把文件更新到生产环境…简直麻烦

然后想应该有个啥方法可以自动提取出全部的受变更的文件。

这不,找到了给记下来:

git archive -o patch.tar HEAD $(git diff --name-only --diff-filter=ACMRT HEAD^)
# 或者
git diff --name-only --diff-filter=ACMRT HEAD^ | xargs tar -rf patch.tar

是不是看到了熟悉的 git-diff?语法大概就是这样了。

 

参考:

https://git-scm.com/docs/git-diff-tree

https://git-scm.com/docs/git-archive

https://stackoverflow.com/questions/4541300/export-only-modified-and-added-files-with-folder-structure-in-git


原创文章,转载请以链接形式注明出处:https://blog.ttionya.com/article-1865.html