在 git 中,我想从 Github 存储库下载一个文件夹并将其添加到我的存储库中的子目录中,如下所示:
存储库/文件夹/子文件夹/
repo/folder/subfolder/clonedfolder //从 git hub 克隆的文件夹
但是我也得到了我不想要的路径目录。
存储库/文件夹/子文件夹/文件夹/文件夹1/文件夹2/克隆文件夹
这是我尝试过的
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 中可能吗?
Git 不适合这个。原因是,每当您从存储库中获取数据时,您的
.git/objects
文件夹都会包含对存储库中所有文件的所有更改。*
如果您有选择,我会将关注点分成 Git 子模块,它们或多或少是使用父项目(带有
.gitmodules
文件)链接在一起的独立 git 存储库。
然后你就可以使用符号链接来制作你想要的目录结构。
例如:
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'
此后您可以访问
childmodule/some-file
,就像访问<child repo>/path/to/subfolder/some-file
一样。☥
Git 将跟踪符号链接。‡