我如何 link 共享公共 git 回购作为其他项目回购中的子目录

How do I link a shared common git repo as a subdir in other project repos

之后我一直找不到这个问题的答案 几天的搜索和发现提示建议 'git remote' 和 'git submodule' 但不够清晰。

我编写了一个 CLI python 脚本 Banner.py,其中包含一个有用的可导入函数。 (参见“https://github.com/jlettvin/Banner”)。 我在 Makefiles、bash 脚本中使用它,并在其他 python 脚本中用作函数。

现在假设我有项目 A 和 B, 两者都可以使用该脚本和函数。 我想在 A 和 B 中创建一个包含 Banner.py 的 'util' 目录。 然后我想在 Makefiles 中调用 '$(HOME)/util/Banner.py' 并将 Banner 导入到这些项目的 python 脚本中。

在处理项目 A 时,我发现必须对 Banner.py 进行调整。 我想在项目A中修改Banner.py,在项目A中提交并推送, 然后在项目 B 中使用 pull 来获取更新版本 并在其他地方独立拉横幅回购。

  1. 我使用什么 git 命令来 link 横幅项目到项目 A 和 B?
  2. 项目 B 中的 'git status' 会提醒我横幅回购更改吗?
  3. 当我从项目 A 推送 Banner 时,是否会通知我要拉取哪些项目?

第一个问题对我来说最重要。 如果我可以修改 Banner 回购协议,然后静静地拉取它 当我提取回购 A 和 B 时,这可能就足够了,但我想要更好的。

使用 git 个子模块,在此处阅读更多内容 http://git-scm.com/book/en/v2/Git-Tools-Submodules。您的 Banner.py 将有一个子模块,它将被添加到您的 A 和 B 项目中。每个人都可以递归更新各自的子模块以引入新的更改,但它不会自动发生(因为你真的应该知道代码修订何时发生更改,所以你通常必须更新它并提交你更新它的事实在你的A/B回购)。