gpt4 book ai didi

git - 如何处理 git 存储库的元存储库?

转载 作者:太空狗 更新时间:2023-10-29 14:08:47 26 4
gpt4 key购买 nike

给定项目目录中的 git 存储库树,例如

Projects/
+A/
|+.git/
+B/
|+.git

我想建立一个 git 存储库 Projects.git,它不跟踪项目的内容,只跟踪它们的存在和状态。克隆此存储库的人应该只有一个未克隆存储库 AB 等的骨架,并单独激活它们是否保持同步。典型的工作流程如下所示:

  • 第一次设置:git clone server:Projects.git
  • 激活项目 A,同时克隆它
  • 现在每个 git-push/pull,无论它是在 Projects/ 还是 Projects/A 中,都应该同时更新 A .git Projects.git关于A的信息。任何与 B 相关的东西都应该被忽略,因为它是非事件的并且在本地是空的
  • 激活项目 B,同时克隆它
  • 现在 Projects 中的任何 git-push/pull 也应该在 AB 中这样做,而 A 中的推/pull 不应影响 B
  • 停用项目 A,它(在验证 A.git 不需要 git-push 之后)清空本地目录 A,对Project.git
  • 没有影响

如何最好地处理这种情况?我目前的方法是一些钩子(Hook)魔术,但我对 git submodules 还不够熟悉看看这是否可以通过子模块实现,或者我是否需要使用其他解决方案。

最佳答案

“元”工具对此非常有用。

你可以在 npm 上找到它:https://www.npmjs.com/package/meta

您可以使用它一次克隆元存储库和所有子存储库,这很棒。

然后您可以使用它来对您的所有子存储库应用操作,例如 pull 您的元存储库和所有子存储库:

cd my-repo
meta git pull

这里有一篇文章可以帮助您开始使用“meta”: https://medium.com/@patrickleet/mono-repo-or-multi-repo-why-choose-one-when-you-can-have-both-e9c77bd0c668

关于git - 如何处理 git 存储库的元存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com