使用git克隆一个可扩展的github

e4eetjau  于 2023-10-14  发布在  Git
关注(0)|答案(1)|浏览(114)

在git中,我想从Github仓库中下载一个文件夹,并将其添加到我的仓库中的一个目录中,如下所示:
repo/folder/subfolder/
repo/folder/subfolder/clonedfolder //从git hub克隆的文件夹
但是我也得到了我不想要的路径目录。
repo/folder/subfolder/folder/folder1/folder2/clonedfolder
这就是我所尝试的

repo/folder/subfolder$ git init

repo/folder/subfolder$ git remote add -f origin [email protected]:repo/repo.git

repo/folder/subfolder$ git sparse-checkout init

repo/folder/subfolder$ git sparse-checkout set clonedfolder

repo/folder/subfolder$ git sparse-checkout list
- clonedfolder

repo/folder/subfolder$ git pull origin develop

这在Git中可能吗?

xuo3flqw

xuo3flqw1#

Git并不适合于此。原因是,每当您从存储库中获取时,您的.git/objects文件夹包含存储库中所有文件的所有更改。
如果你有选择的余地,我会将关注点分为Git submodules,它们是或多或少独立的git存储库,使用父项目(带有.gitmodules文件)链接在一起。
然后,您可以使用符号链接来创建您想要的目录结构。
举例来说:

mkdir parent-proj ; cd parent-project
git init
mkdir .my-git-root-folders
git submodule add https://example.com/child.git .my-git-root-folders/child
ln -s .my-git-root-folders/child/path/to/subfolder childmodule
git add childmodule
git commit -m 'Add and link child module'

在此之后,您可以像访问<child repo>/path/to/subfolder/some-file一样访问childmodule/some-file
Git将跟踪符号链接。

脚注:

    • 除了浅克隆的情况,它只包括每个可访问的HEAD的最新修订版。然而,每个文件的状态仍然被记录。
      *如果您的代码没有 * 专门 * 测试符号链接。
      *错误已知Windows有符号链接的问题;您甚至需要管理员访问权限才能创建它们。

相关问题