在Git存储库的多个目录中使用相同的代码

时间:2016-05-04 17:53:12

标签: git github symlink git-submodules

我有一个Git存储库。在此存储库中有一个名为core_code的目录,其中包含在多个软件(如公共库)中使用的公共代码。还有一些名为program_alphaprogram_beta的目录,它们包含两个不同的软件但是相关的。 program_alphaprogram_beta都依赖于core_code来运行,当软件运行时,core_code需要位于程序目录中。因此,当我运行该软件时,program_alphaprogram_beta都需要在其中包含core_code的副本(由于特定于应用程序的原因,core_code必须在程序根目录中,不能从其他地方引用。)

所以,我正在寻找一种方法让所有core_code目录中都有program_*,但不能复制它。最初我想做的事情就像每个program_*目录中有一个指向core_code目录的符号链接,但是我使用代码跨平台而且Git没有很好地处理Windows符号链接所有。我还必须将所有这些代码保存在同一个存储库中,因此我无法为core_code创建单独的存储库,然后在program_*目录中使用子模块。

有关最佳方法的建议吗?如果符号链接在Git中运行得更好,那就太简单了。

1 个答案:

答案 0 :(得分:0)

您可以在Windows计算机上使用post-checkout挂钩。在github上尝试this实现。您可以在另一个问题中找到有关此方法的更多讨论:Git Symlinks in Windows

如果您的回购邮件是在大量用户之间共享的,则最好使用core_codeMakefile脚本复制configure。不要依赖git-symlink或hook。