2014/10/02

Git Export By Commit Range

git archive 指令可以將檔案匯出一份乾淨的程式碼,不會有任何的 repo 紀錄,我最常用的壓縮成 zip。

git archive --format zip --ouput "file.zip" master

如果想要及時解出一個乾淨的資料夾,可以使用 tar 的功能。

git archive master | tar -x -C /folderName

如果我們有更新檔案想要傳給客戶,但是每次都把整個資料夾 zip 過去對方要覆蓋的話也很麻煩,有一個方法可以指定範圍來壓縮或者是 tar 乾淨的目錄,假設今天要壓縮的範圍是 。

# 首先使用 git log 指令來查出你要更動的範圍
git log --name-only

# 找到了這次變動需要匯出的檔案,範圍是 78428a 到 c8cd230 指令為
git archive --format zip --ouput "file.zip" 78428a $(git diff --name-only 78428a^..c8cd230)

這樣就可以匯出這個範圍 commit 的檔案了。

沒有留言: