如何从没有.git文件夹的git存储库中仅克隆分支的工作目录

时间:2011-07-18 04:04:11

标签: git

是否有任何git命令允许我从git存储库中“克隆”但是只克隆了指定分支的工作目录而没有包含所有日志和版本历史记录的.git文件夹?

在单个.git repo上使用多个工作目录的原因很少。原因1:我在git中有很少的分支,我想工作并同时看到这些分支而没有可能覆盖分支中的文件的git checkout。原因2:我想制作特定分支的软件版本,但不想打扰我正在工作的分支。

2 个答案:

答案 0 :(得分:4)

根据OP的最新评论:

为什么不再制作另一个克隆(或者只是复制现有的仓库)并签出另一个分支呢?

Git-Archive可以帮助您:

来自文档的示例:

git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)

您还可以使用--remote标志从远程存档中获取它。

http://www.kernel.org/pub/software/scm/git/docs/git-archive.html

答案 1 :(得分:2)

在Linux(或Windows上,如果您安装a commandline tar client):

git archive <commitish> | tar -x -C /path/to/folder

基本上,这告诉git在修订版<commitish>上构建源树的存档(tarball),然后通过tar将其提取到文件夹中。

不幸的是,git目前不直接支持此功能。