我有一个Git存储库。在此存储库中有一个名为core_code
的目录,其中包含在多个软件(如公共库)中使用的公共代码。还有一些名为program_alpha
和program_beta
的目录,它们包含两个不同的软件但是相关的。 program_alpha
和program_beta
都依赖于core_code
来运行,当软件运行时,core_code
需要位于程序目录中。因此,当我运行该软件时,program_alpha
和program_beta
都需要在其中包含core_code
的副本(由于特定于应用程序的原因,core_code
必须在程序根目录中,不能从其他地方引用。)
所以,我正在寻找一种方法让所有core_code
目录中都有program_*
,但不能复制它。最初我想做的事情就像每个program_*
目录中有一个指向core_code
目录的符号链接,但是我使用代码跨平台而且Git没有很好地处理Windows符号链接所有。我还必须将所有这些代码保存在同一个存储库中,因此我无法为core_code
创建单独的存储库,然后在program_*
目录中使用子模块。
有关最佳方法的建议吗?如果符号链接在Git中运行得更好,那就太简单了。
答案 0 :(得分:0)
您可以在Windows计算机上使用post-checkout
挂钩。在github上尝试this实现。您可以在另一个问题中找到有关此方法的更多讨论:Git Symlinks in Windows
如果您的回购邮件是在大量用户之间共享的,则最好使用core_code
或Makefile
脚本复制configure
。不要依赖git-symlink或hook。