簡體   English   中英

如何從Git存儲庫中提取對文件夾/歸檔的所有提交的所有文件?

[英]How to extract all files of any commit to a folder/archive from a Git Repository?

我有一個Git存儲庫。 我想基於不同的提交將存儲庫歷史記錄中的所有文件和文件夾導出到一個文件夾中。 但是我想分別導出所有提交和分支。 我的git存儲庫的一種備份/存檔。

例如,如果我的存儲庫歷史記錄為:

-v2.0我的最新提交-v1.0我的初次提交

我想將這些不同提交的所有文件和文件夾導出到單獨的文件夾中。 我希望這些文件作為普通的完整文件而不是作為差異補丁。

例如,文件夾“ /MyGitBackup/Master/v1.0”和“ /MyGitBackup/Master/v2.0”應包含相應提交的文件。

我該如何實現? GUI工具是否具有此功能或類似功能? 我使用Windows機器。

您可以使用git worktree <path> <commit>來簽出對不同目錄的不同提交。 因此,在您的工作目錄中執行以下命令:

git worktree add /MyGitBackup/Master/v1.0 <v1.0 commit hash or tag>
git worktree add /MyGitBackup/Master/v2.0 <v2.0 commit hash or tag>

聽起來像是在浪費空間。 但請確保有可能:

  • 對於每個修訂版,按照git rev-list命令
  • 使用適當的標志運行git archive revision

這是將master中每個修訂的內容導出到archive/子目錄中單獨文件夾中的一種方法:

git rev-list master | while read rev; do
    echo creating archive for $rev
    mkdir -p archive/$rev
    git archive $rev | (cd archive/$rev; tar x)
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM