2016-08-07 21 views

回答

0

由於git archive作品只能用treeish,你將需要:

即:

git add . 
git commit -m "tmp commit for export" 
git archive -o patch.zip @ $(git diff --name-only @[email protected]) 
git reset @~ 

注意:如果你有這些文件的路徑名空間,你可能需要代替:

git diff -z --name-only @~ @ | xargs -0 git archive -o patch.zip @ 
0

假設:

  • 你的工作已經放置在臨時區域與git add <filename>
  • 您不想爲了保存工作而創建臨時提交
  • 您希望每個版本控制文件有一個差異/修補程序

for f in $(git diff --cached --name-only); do \ 
    p="$f.patch"; git diff --cached -- "$f" > "$p" && zip p.zip "$p" && rm "$p"; \ 
done 
    adding: file-1.c.patch (deflated 36%) 
    adding: file-2.c.patch (deflated 44%) 

查看存檔內容:

unzip -l p.zip 
Archive: p.zip 
    Length  Date Time Name 
--------- ---------- ----- ---- 
     259 2016-08-07 19:24 file-1.c.patch 
     347 2016-08-07 19:24 file-2.c.patch 
---------      ------- 
     606      2 files