带有符号链接的Git存储库

wi3ka0sx  于 2022-11-20  发布在  Git
关注(0)|答案(1)|浏览(136)

我觉得我在这里做错了什么(我知道我是架构方面的,但这是一个简单的项目)。
在同一文件夹(proj)中有两个(“三个”)子项目:
1.Angular 前端(proj/fe
1.基于Typescript(node.js)的后端(proj/lambda
1.包含DTO的共享“域”目录(proj/domain
据我所知,在理想情况下,这应该是三个独立的repo,#3是#1和#2的git子模块。
但这是一个微小的项目,我不是在一个理想的世界,所以我需要保持在同一个git repo的一切。
当前的设置是“域”目录(子项目#3)通过符号链接呈现给#1和#2;即proj/fe/src/app/domainproj/lambda/code/domain都指向proj/domain
Git似乎不能很好地处理这种情况。
是否有一个选项或标志(或一个更好的方法-- * 而不 * 解决使用多重存储库),我可以在这里利用?

50few1ms

50few1ms1#

git知道如何存储和检查符号链接,问题是它存储了 * 您为符号链接提供的 * 确切路径。
(do如果您运行的是Windows,请仔细检查)
如果您为符号链接提供 * 相对路径 *(并且这些路径没有转义存储库),您的设置应该可以工作:

cd proj/
ln -nsf ../../../domain fe/src/app/domain
ln -nsf ../../domain lambda/code/domain

# on any checkout: the symlinks will point to that directory, two or
# three levels higher than current directory

如果您改用绝对路径:

ln -nsf /path/to/proj/domain fe/src/app/domain
ln -nsf /path/to/proj/domain lambda/code/domain

checkout 的符号链接将指向/path/to/proj/domain--这不是您在开发笔记本电脑以外的系统上所希望的。

相关问题