![](/img/trans.png)
[英]How to extract all files of any commit to a folder/archive from a Git Repository?
[英]How to get files from a commit, to a folder outside from my repository?
我需要從2個提交中選擇文件(我選擇),然后將其放入存儲庫之外的2個不同的文件夾中,我將執行一個過程,然后我需要能夠刪除這2個文件夾。
我忙於嘗試一些命令, git -clone
對我不起作用,我不需要整個存儲庫,只需某些提交(每個文件夾一個),並且我有一些嘗試刪除該文件夾的信息。
我嘗試過的其他方法是git archive
但是輸出對我而言不起作用。 我需要與存儲庫相同的文件。
一個非常接近的人是git --work-tree=<path> checkout <sha> -- .
但是此命令將文件(有區別的文件)存儲在我的存儲庫中,我不希望這樣。
可以在不更改存儲庫的情況下做我想做的事情嗎?
從您的存儲庫目錄(稱為project
:
mkdir ../foo && cd ../foo && echo 'gitdir: ../project/.git' >.git && git checkout <commit-ish> -- .
可能會產生您想要的結果。
git show <commit>:<file_path> > <path>
例如, git show HEAD:foo/bar.c > ~/build/foo/bar.c
, git show master:foo/bar.c > ~/backup/bar.c
git show
可以在這里用git cat-file -p
替換。
如果需要整個git worktree
,可以使用git worktree
如果您有較新的版本)。 它只是簽出對另一個文件夾而不是當前工作樹的修訂,因此您不必進行其他克隆。
例如, git worktree add master ~/foo/
,它將master
檢出到~/foo/
而當前工作樹保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.