Posted on 

git 匯出特定版本到最新版本(或其他版本)打包檔案

直接上指令如下

1
git archive --output=file.zip --format=zip HEAD $(git diff-tree -r --name-only --diff-filter=ACMRT 8a2439 HEAD)

--diff-filter 裡的意義為:

A = Added 增加的檔案
C = Copied 複製加入追蹤的檔案
M = Modified 修改的檔案
R = Renamed 重新命名過的檔案
T = Changed 狀態變更的檔案

通常應該都會使用,在視自己情況斟酌使用囉

8a2439 為你要匯出的版本號起始範圍,可以使用 git log 查看
不需要將漏漏長的版本號打上,打上前六個英數字即可

HEAD 為你要匯出的版本號結束範圍,如為最新版本就保持 HEAD 即可
如果是要到某版本,一樣用 git log 查詢囉