如何从提交中获取文件到我的存储库外的文件夹?

时间:2016-10-14 21:00:00

标签: git github

我需要从2个提交(我选择的)中获取文件,并在我的存储库外放入2个不同的文件夹,我将执行一个过程,而不是我需要能够删除这两个文件夹。

我正在尝试一些命令,git -clone对我不起作用,我不需要整个存储库,只需要某些提交(每个文件夹一个文件夹),并且我有一些尝试擦除文件夹

我试过的其他内容是git archive,但输出对我没用。我需要的文件与存储库相同。

那个非常接近的人是git --work-tree=<path> checkout <sha> -- .但是这个命令在我的存储库中存放了文件(谁有不同之处),我不想要那个。

可以做我想要的,而不对我的存储库进行更改吗?

2 个答案:

答案 0 :(得分:2)

从您的存储库目录mkdir ../foo && cd ../foo && echo 'gitdir: ../project/.git' >.git && git checkout <commit-ish> -- .

i = 0
while i < num_of_people:
    for a in range(0, num_of_people+1):
        namelist.append(i)
        i += 1
        salarylist.append(i)
        i +=1
        ...

可能会产生你想要的结果。

答案 1 :(得分:0)

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 add master ~/foo/,在当前工作树保持不变的状态下将master结帐到~/foo/