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