克隆git repo的子树/子目录

亚历山大·米尔斯

我在Github上有一个git repo,看起来像这样:

.git/
assets/
  tools/
    a.sh
    b.sh
    c.sh

当然.git文件夹不在版本控制中,但是您知道了。我想在以下路径中将tools / *。sh复制到本地目录:

./scripts/git/tools

我当前的目录是一个git repo,与远程git repo有着完全不同的历史,我只想从远程复制一些文件,我不想合并任何东西。

我想我可以做这样的事情:

git clone --path assets/tools/*.sh "$remote_repo"  ./scripts/git/tools

但是该命令不是真实的,是否可以使用某些命令来执行此操作?

我能想到的唯一另一种方法是将整个仓库克隆到某个临时目录,然后将文件复制过来,但这并不是那么有趣。

我能想到的唯一另一种方法是将整个仓库克隆到某个临时目录,然后将文件复制过来,但这并不是那么有趣。

但是,考虑到即使存在部分克隆,它仍然会保留资产/工具路径结构,因此这是可取的。
您可以在其他地方进行稀疏签出,然后复制文件。

使用Git 2.17 / 2.18,您可以尝试进行部分克隆或狭窄克隆,仅克隆一个子文件夹,但这假设远程服务器确实支持此新功能。

另一个更经典的选择是使用(如果远程存储库支持)最新HEAD的归档文件(zip文件):请参阅“如何从git存储库中仅检出一个文件('sparse checkout')? ”,但适用于档案的子文件夹,而不是文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章