Git中打包文件是个简单的活,不管是打包全部文件作为release,还是只压缩更改的文件,一个命令就能搞定。而且,打包之后目录结构完全不变,这对于覆盖部署来说极其方便。
1 打包所有文件打包master分支的所有文件:
[quote]
$ git archive --format=zip--output master.zipmaster
[/quote]
其中,输出格式为zip,输出文件为master.zip。
git支持zip和tar两种输出格式。
打包当前分支当前HEAD的所有文件:
[quote]
$ git archive --format=zip--output head.zipHEAD
[/quote]
打包v1.2标签的所有文件:
[quote]
$ git archive --format=zip--output v1.2.zipv1.22
[/quote]
打包更改的文件打包更改文件的原理是:用git diff找出文件列表;用打包命令打包。也就是说,只要能用找出文件列表,就可以git打包出来。
2.1 打包最后修改的文件先通过git diff找到最新版本修改过的文件,再压缩打包这些文件:[quote]
$ git archive --format=zip -o update.zip HEAD $(git diff --name-only HEAD^)
[/quote]
2.2 打包最后两个版本修改的文件总共也是2个版本:[quote]
$ git archive --format=zip -o update.zip HEAD $(git diff --name-only HEAD~2)
[/quote]
2.3 打包两个分支之间差别的文件[quote]
$ git archive --format=zip -o update.zip HEAD $(git diff --name-only master fix-error)
[/quote]
如上,打包master和fix-error分支差异的文件。
2.4 打包并忽略某个文件或文件夹忽略wxapp文件夹[quote]
git diff --name-only a4fe39ecf6 45cef8305c --name-only | xargs tar -zcvf diff.tar.gz --exclude=wxapp
[/quote]
2.5 简单一点的git tar打包[quote]
git diff --name-only a4fe39ecf6 45cef8305c --name-only | xargs tar -cvf diff.tar --exclude=wxapp
[/quote]
[pre]
git archive --format zip --output /path/to/file.zip master # 将 master 以zip格式打包到指定文件
[/pre]
[pre]
git archive v0.1 | gzip > site.tgz
git archive master > /home/hainuo/fds.zip
[/pre]
[pre]
git archive develop $( git diff v1.1.8_beta13..v1.1.8_beta14 --name-only)|gzip >aaa.zip #比较两个版本之间的差异文件,生成一个差异文件压缩包
[/pre]
作者:1624667daae9
链接:https://www.jianshu.com/p/1c2ddcb9d0b5
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
网站声明:
1.本站使用TaoLerCMS驱动,安全迅速,简单好用,深度SEO。
2.本站用户所发布内容均为用户个人行为,若有侵权请提供原内容出处,联系本站管理员删除。
3.站点原创内容转载及引用,请联系本站并引用原文链接地址,否则一切后果自行承担。
点赞 0
还没有内容