两个 git 存储库之间的符号链接是不是可能?
Posted
技术标签:
【中文标题】两个 git 存储库之间的符号链接是不是可能?【英文标题】:Is symbolic link between two git repositories possible?两个 git 存储库之间的符号链接是否可能? 【发布时间】:2020-09-15 17:06:49 【问题描述】:我浏览了一些关于这个主题的文档,我真的对 git 子模块以及它如何实现符号链接感到困惑。
以下是我必须实现的方案:
我有两个 GitHub 存储库 repoA
和 repoB
。
我必须将repoA
中的一些文件链接到repoB
,这样每当repoA
中的这些文件发生更改时,它也应该反映在repoB
上。
我的第一个问题是——这在 GitHub 上可行吗? 如果可能,我们怎样才能做到这一点?
我浏览过的大多数文件至少是 5 年前的。我知道这是一个老问题,但我只想知道现在是否有可能完成这项任务。
【问题讨论】:
您在使用子模块时遇到了哪些具体问题? 我创建了 repoB 的 master 分支作为 repoA 的子模块。但我的困惑是,如果我们在子模块(repoB 的主分支)中提交任何更改,它是否也会反映在 repoA 的子模块中?因为它不会发生在我身上! @CH。 子模块不会自动同步到远程,就像普通的 git 存储库在没有拉取的情况下不会同步到远程一样。根据您的安排,您可能需要执行git submodule update --remote
之类的操作来集成最新更改。
【参考方案1】:
我浏览了一些关于这个主题的文档,当大多数文档在询问符号链接时以创建子模块结束时,我真的很困惑。
而且文档是正确的。您想要实现的场景可以通过子模块和另一种方法实现。 GitHub 本身不提供任何功能来实现您想要做的事情。
要对子模块执行此操作,您需要做的就是添加子模块并使用它。不时更新子模块以跟踪子模块上游的更改并将这些更改与工作树的master
同步。
我知道子模块一开始可能有点吓人,但它们是一个很棒的工具!另一种解决方案是将所需的存储库克隆到您的工作树中,并在需要时从其上游拉取更改。不过,这不会在工作树和新仓库中创建符号链接。
最好的
【讨论】:
我已经创建了 repoB 的 master 分支作为 repoA 的子模块。但我的困惑是,如果我们在子模块(repoB 的主分支)中提交任何更改,它是否也会反映在 repoA 的子模块中?因为它不会发生在我身上!以上是关于两个 git 存储库之间的符号链接是不是可能?的主要内容,如果未能解决你的问题,请参考以下文章