Git打包文件

Git中打包文件是个简单的活,不管是打包全部文件作为release,

还是只压缩更改的文件,一个命令就能搞定。

而且,打包之后目录结构完全不变,这对于覆盖部署来说极其方便。

1 打包所有文件

打包master分支的所有文件:

$ git archive --format=zip --output master.zip master

其中,输出格式为zip,输出文件为master.zip。git支持zip和tar两种输出格式。

打包当前分支当前HEAD的所有文件:

$ git archive --format=zip --output head.zip HEAD

打包v1.2标签的所有文件:

$ git archive --format=zip --output v1.2.zip v1.2

2 打包更改的文件

打包更改文件的原理是:

  1. git diff 找出文件列表;
  2. 用打包命令打包。

也就是说,只要能用找出文件列表,就可以git打包出来。

2.1 打包最后修改的文件

先通过git diff找到最新版本修改过的文件,再压缩打包这些文件:

$ git archive --format=zip -o update.zip HEAD $(git diff --name-only HEAD^)

2.2 打包最后两个版本修改的文件

总共也是2个版本:

$ git archive --format=zip -o update.zip HEAD $(git diff --name-only HEAD~2)

2.3 打包两个分支之间差别的文件

$ git archive --format=zip -o update.zip HEAD $(git diff --name-only master fix-error)

如上,打包masterfix-error分支差异的文件。

 

参考资料:

  1. Using Git to create an archive of changed files.
  2. 如何讓 Git 僅匯出在特定版本中新增或修改過的檔案

1条评论

蒂欧娜 says: 回复

来看看,学习学习!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *