是否有任何git hook可以拉?


157

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


15
@Alan:绝对不是重复的。这个问题是关于您在本地运行的钩子git pull。您所链接的是关于在有人从遥控器上拔出钩子时触发的。(这是一个非常奇怪的问题-这意味着他们使用的是非裸露的中央
仓库

2
@Alan:如果您正在浏览,很容易错过-希望我不太苛刻。我只是对问题被错误地关闭而感到偏执,因为重新开放的投票花费了更长的时间。
卡斯卡贝尔

1
Jefromi:你绝对正确。不用担心。我只是略略浏览并启动了关闭操作,这让我感到非常难过。
艾伦·哈盖·阿拉维

Answers:


184

githooks手册页是挂钩的完整列表。如果不在此处,则不存在。

这就是说,有一个后合并挂钩,所有的拉包括合并,虽然不是所有的合并是拉。它在合并后运行,并且不会影响结果。如果有冲突,它将永远不会被执行;如果确实很重要,则必须使用commit-post钩子来接管,或者手动调用它。


39
@Jefromi“所有拉动都包含合并”,即使我执行拉动--rebase吗?
FMaz008 2011年

11
还发现git pull如果没有要引入的更改(您已经是最新的),运行时合并将永远不会执行。
Joe Bergantine 2012年

11
@jbergantine:我想我的回答不准确-所有非禁忌的动作都包含合并。但是...总的来说,如果您试图在发生合并时采取措施,那么我认为您不想在某人进行无操作合并时采取措施。例如,如果没有任何变化,OP重新创建这些文件将是一种浪费。
卡斯卡贝尔2012年

12
如果您真的想在每次拉动时都做某事...您可以给'git pull'加上别名,这样您就可以调用执行git pull的脚本,然后再执行其他操作
Shadow Radiance 2014年

13
git pull使用rebase(使用--rebaseconfig或使用config pull.rebase=true)不包含合并,也不会触发合并后钩子。对于这种情况,您可以指定--no-rebase以确保挂钩被触发,或使用重写后挂钩。
维克多·施罗德

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.