繁体   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