Git导出增量包

  • Post author:
  • Post category:其他


前言

在项目开发部署中,通常是将一个Git项目全量打包发布,但有的场景只需要导出有变更的那部分文件,增量发布,此时就需要使用Git导出增量包了。本文主要使用到git archive导出命令和git diff比较命令。


1、导出最后一次提交修改过的文件

git archive -o filepath/filename.zip HEAD $(git diff --name-only HEAD^)

例:git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)


2、导出两次提交之间修改过的文件

git archive -o .filepath/filename.zip NEW_COMMIT_ID $(git diff --name-only OLD_COMMIT_ID NEW_COMMIT_ID)

例:git archive -o ../latest.zip 81131159 $(git diff --name-only a54ff521 81131159)


3、文件名有中文时,git diff 中文会转码显示

例:git diff HEAD^ HEAD --name-only
    test/2021/01/\345\210\206\346\224\225\206\265\368\210\210\224\257\350.txt
    test/2021/01/\345\210\206\346\224\257\346\265\213\350\257\225.txt

git diff接受的编码格式为utf-8,而文件名是以gb2312格式编写的,所以git diff会转码显示。


解决方法:

执行以下命令,修改core.quotepath配置:

git config --global core.quotepath false

core.quotepath设为false的话,就不会对编码大于0x80的字符进行转码,中文即可正常显示。



版权声明:本文为zuoyixiao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。