Git子模块提交挂钩

Mla*_*den 27 git pre-commit-hook git-submodules

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

我可以从任何使用它的项目中提交SubmoduleRepo.

我可以非常轻松地更新,提交和推送到SubmoduleRepo.

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

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

Jas*_*son 24

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

`git rev-parse --git-path hooks`
Run Code Online (Sandbox Code Playgroud)

注意:默认情况下,.git/hooks但如果您在子模块中,它将是不同的.

Pre Git 2.10+你想要的东西如下:

`git rev-parse --git-dir`/hooks
Run Code Online (Sandbox Code Playgroud)

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


Mla*_*den 21

发布此帖后我发现解决方案的几个小时...

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

  • 这可以使用`git rev-parse --git-dir`编写脚本.请参阅:http://stackoverflow.com/questions/14073053/find-path-to-git-hooks-directory-on-the-shell (8认同)
  • 遗憾的是,这不是可编写脚本的. (2认同)