如何设置git将另一个repo的文件夹签出到我的repo子目录中?

时间:2017-03-14 17:42:02

标签: git

在我们的项目中,一个人正在编写简单的SCSS,其他人正在使用Rails应用程序。我经常需要将SCSS从简单的repo复制到Rails资产管道中。副本是准确的。所以我想知道如何设置git以便我可以定期执行它? (尽可能方便)

1 个答案:

答案 0 :(得分:1)

好吧,我猜git子模块是你正在寻找的功能。请参阅https://git-scm.com/book/en/v2/Git-Tools-Submodules

上的git文档

如果我听起来有点犹豫,那是因为我一直认为用源控制软件吸收依赖关系有点奇怪;如果您可以通过构建工具自动执行此操作,我认为这可能是一个更自然的解决方案。但是如果把它作为git操作是你的选择,我会看看上面的内容。

<强>更新

评论中的后续问题:是否可以仅为其他项目的子文件夹设置子模块?

所以我们有项目A

projectA/
    stuff/
    other-stuff/
    shared-stuff/

和项目B

projectB/
    more-stuff/
    unrelated-stuff/

我们希望projectA/shared-stuff也显示为projectB/shared-stuff/,我们正在讨论如何使用子模块执行此操作。

我不知道子模块可以比“嵌入该repo的提交”更具体。但有一个建议是将共享代码拆分为自己的仓库

shared-stuff/

然后将共享内容添加为项目A和项目B的子模块

projectA repo       | shared-stuff repo |  projectB repo
==================================================================
/                   |                   |  /
    stuff/          |                   |      more-stuff/
    other-stuff/    |                   |      unrelated-stuff/
    (shared-stuff)--> /                 <--    (shared-stuff)

当然因为子模块映射包含在使用子模块的repo中,所以文件夹名称(或父项目树中的位置)不必匹配......