通过git子模块跟踪外部目录

3

MainApp目录是主git仓库

MainApp
|
|
+--Js/MyPlugin/Plugin.js
|
+--Plugins/MyPlugin+-Controller/..
|                  |
|                  +-Model/..
|                  |
|                  +-.git 
|
+--Model/..
+--View/..
+--Controller/..
+--.git

MainApp/Plugins/MyPlugin 目录是一个 git 子模块。 我能否跟踪 /js/MyPlugin 外部目录,并将其与 MyPlugin git 子模块一起使用?是否有可能在不在 /MainApp/Plugins/MyPlugin 目录中创建 javascript 文件夹并建立符号链接的情况下,使该文件夹可跟踪?


1
我没有看到 "MainApp/MyPlugin" 。我看到的是 MainApp/Plugins/MyPlugin: 那是子模块吗? - VonC
是的,我很抱歉让你感到困惑。我已经再次编辑了这个问题。 - Ron
你可以使用/js/MyPlugin创建一个子模块,但无论如何这都不是很实用。也许可以创建另一个“超级项目”,其中包含三个子模块和一些正确放置的符号链接? - MayeulC
1个回答

0

由于子模块只有一个路径,如果您需要在存储库的其他位置使用其中的一部分:

  • 要么MyPlugin不是git子模块的好选择
  • 要么您的符号链接解决方案仍然是最佳替代方法。
    (除非您不必在子模块内创建Js文件夹,您可以创建Js/MyPlugin/并仅链接内容:Plugin.js

不清楚符号链接和plugin.js实际存储在哪里。如果您要在新的父项目中克隆此子模块,实际上会克隆什么?它只会克隆Plugin.js,您需要负责创建Js/MyPlugin/和符号链接吗?如果是这样,那么Git存在一些明显而被忽视的问题,使其不适合模块化开发。 - ATL_DEV
@ATL_DEV 在同一代码库中创建符号链接是可行的。 - VonC
1
有趣,但仍让我的大脑很累。Git(以及UNIX系统)的问题在于,它的概念只有当您考虑其实现时才有意义,这就像强迫驾驶员了解引擎和变速器的工作原理才能驾驶汽车一样。 - ATL_DEV
@ATL_DEV 你不需要这样做,你可以阅读这个寓言:http://tom.preston-werner.com/2009/05/19/the-git-parable.html - VonC
谢谢提供链接。我会仔细阅读的。这些年来,每次遇到Git,我都感觉自己又要重新学习一遍。这就像学习电一样。一开始不理解,然后突然恍然大悟,接着再思考一下,又会变得不清晰。这个过程一遍又一遍地重复。我注意到很多人常常借助欧姆定律和基尔霍夫方程之类的数学公式,但我想知道他们是否真正从直觉上理解了它。 - ATL_DEV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接