git提交后钩子
我有两个git项目repo,它们有两个或三个共同的文件 大概是这样的:git提交后钩子,git,repository,github,Git,Repository,Github,我有两个git项目repo,它们有两个或三个共同的文件 大概是这样的: projecta------>helper\u函数 projectb------>helper\u功能 我想知道是否有一种公认的方法可以在repo之间“共享”这些公共帮助文件,这样我就不必在两个repo中维护单独的副本 当项目a中的helper_函数被更新时,会像post-commit钩子一样更新项目B中的helper_函数吗?或者是否有更无缝的方法来确保两个项目都有最新和最好版本的helper_函数文件,并且该文件自动包含
projecta------>helper\u函数
projectb------>helper\u功能
我想知道是否有一种公认的方法可以在repo之间“共享”这些公共帮助文件,这样我就不必在两个repo中维护单独的副本
当项目a中的helper_函数被更新时,会像post-commit钩子一样更新项目B中的helper_函数吗?或者是否有更无缝的方法来确保两个项目都有最新和最好版本的helper_函数文件,并且该文件自动包含在项目的任何包中
感谢您以公认的方式提供任何想法或资源来处理此问题
此外,我还想补充一点,这两个项目都有协作者,因此理想情况下是自动的,因此我们都在同一个页面上,而不必使用软链接或别名。有些人可能会说,这对于一些文件来说是过度的,但对我来说,这听起来是使用git对子模块的支持的一个很好的例子。基本上,您将创建一个名为
helper\u functions
的新存储库,并将其作为子模块添加到每个现有存储库中:
git submodule add git://foo/bar/helper_functions.git helper_functions
然而,使用子模块有一些微妙之处,因此值得先读一读。我喜欢把这作为一个起点,但还有很多其他很好的解释,例如,来自
< >我不会创建钩子来提交和推送子模块,但是我认为最好是在更新主库中提交的子模块的版本时仔细考虑。不过,我发现非常有用的是使用
提交子模块
脚本,确保在将新的子模块版本提交到存储库之前推送子模块更改。我会使用子模块,但建议使用“git slave”来处理对共享存储库的任何更新
另一种选择是使用子树。谢谢你快速而彻底的回答,我从来没有遇到过git的这个特性。小心点。你很快就会发现自己在利用我的答案。