拉有什么git钩子吗?

msg*_*gre 150 git hook gettext

我每次运行时都需要在项目中执行一些操作(准备gettext*.mo消息文件)git pull.有没有合适的git钩子,我可以用于此目的吗?

Cas*_*bel 177

githooks手册页是挂钩的完整列表.如果它不在那里,它就不存在了.

这就是说,有一个合并后挂机,所有拉包括合并,虽然不是所有的合并是拉.它在合并后运行,不会影响结果.如果发生冲突,它永远不会被执行; 如果真的很重要,你必须使用post-commit钩子选择它,或者手动调用它.

  • @Jefromi"所有拉动包括合并",即使我做了拉动 - 基础? (36认同)
  • 使用rebase(带有`--rebase`或配置`pull.rebase = true`)的`git pull`不包含合并,也不会触发合并后挂钩.对于这种情况,您可以指定`--no-rebase`以确保触发挂钩或使用post-rewrite挂钩. (12认同)
  • @jbergantine:我想我的回答是不精确的 - 所有不是非操作的拉动包括合并.但是......一般来说,如果你试图在合并发生时采取行动,我认为你不想在有人进行无操作合并时采取行动.例如,如果没有任何改变,OP将重新创建这些文件是浪费. (11认同)
  • 还发现,如果没有要进行任何更改(你已经是最新的),运行`git pull`时就不会执行merge. (10认同)
  • 如果你真的想在每次拉动时做一些事情...你可以别名'git pull',这样你就可以调用一个执行git pull的脚本然后再执行其他操作 (10认同)
  • @ShadowRadiance:这必须是shell别名,而不是Git别名,因为Git不允许使用别名覆盖命令。 (2认同)

Sno*_*ash 14

post-merge- 有关如何使用它的更多详细信息,请参阅https://git-scm.com/docs/githooks#_post_merge.