35

我正在使用一个 git 子模块(我们称之为 SubmoduleRepo),以便我可以将我的模块包含在几个项目中。

我可以从任何使用它的项目提交给 SubmoduleRepo。

我可以轻松地更新、提交和推送到 SubmoduleRepo。

每当我在包含 SubmoduleRepo 的项目中的目录中工作时提交某些内容时,我都需要执行一个提交挂钩(当我在 SubmoduleRepo 中工作时,提交挂钩按预期执行)

子模块的目录中没有 .git 文件夹(只有指定当前目录路径的 .git 文件)。

4

2 回答 2

35

如果您有 Git 2.10+,您可以hooks通过运行以下命令获取目录:

`git rev-parse --git-path hooks`

注意:默认情况下它是.git/hooks,但如果你在一个子模块中,它会有所不同。

Pre Git 2.10+ 你会想要这样的东西:

`git rev-parse --git-dir`/hooks

更多信息: 在 shell 上查找 git hooks 目录的路径

于 2013-02-28T22:01:14.860 回答
26

发布此消息后,我找到了解决方案。

您可以将钩子放在 .git/modules//hooks/ 中 - 例如。.git/modules/web/js/modules/rate 如果您的子模块位于 /web/js/modules/rate 目录中。

于 2012-06-01T10:12:48.557 回答