2016-11-30 28 views
0

我正嘗試使用以下命令在最新的3次提交中創建文件的存檔。git存檔:如何在存檔期間忽略pathspec?

git archive -o archive.zip $(git diff --name-only HEAD~3) 

但在最後一次提交我刪除了幾個文件,這是顯示在diff輸出。所以我得到這個錯誤:

fatal: pathspec 'public/uploads/5839529ba9381.png' did not match any files 

如何忽略在git檔案中提交時被刪除的文件?我試過--ignore-unmatch的論點,但它不起作用。

回答

0

實質上,git archive用於備份某個時間點的狀態,不適合時間線的備份修改,即您不能通過git archive保存delete files的動作。

如果要備份最新的3個提交,可以使用git bundle命令。

git bundle create last_three_commit.bundle HEAD~3..HEAD 

git bundle create last_three_commit.bundle -3 HEAD  

請有關詳細信息,運行git bundle --help

+0

該命令不起作用,是否有兩個點?是否應該有空格? – bazi

+0

@bazi,對不起,我錯過了命令行中的包文件名。我已經更新了我的答案。 – gzh

+0

確定它現在有效。我可以將格式更改爲zip嗎? – bazi