![](/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.