簡體   English   中英

如何從提交到我的存儲庫外部的文件夾中獲取文件?

[英]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.cgit 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.

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