2015-09-03 81 views
2

我正在为git写一个post-checkout钩子。我希望这个钩子被包含到仓库中,并在新的克隆之后直接运行(就像它那样)。但是,我无法将文件添加到存储库中的.git/hooks目录。Git post-checkout hook from repo

哪里添加我的脚本以便git在克隆后直接运行它?

旁注:
我知道这增加了安全风险,但我对此确定。

回答

1

您可以将其添加到其他目录中的任何位置,并在克隆时使用git clone --template=[mydir]。 例如mkdir -p ~/my_git/hooks; vi ~/my_git/hooks/post-checkout; git clone --template=~/my_git

+0

但是这仍然需要开发者改变他们的习惯,对吗?我希望我的'post-checkout'脚本可以在正常的'git clone'命令后直接运行,如果该文件存在于'.git/hooks'文件夹中,那么它就会运行。 –

+0

@PaulPeelen出于安全考虑,你建议的内容是不可能的:克隆人必须有意识地决定安装一个钩子,以免他/她成为恶意钩子的受害者。出于同样的原因,Git配置文件不会被克隆。 – Jubobs

+0

我很害怕那个。然而,这种方式打败了我的目的,因为我希望它在克隆后做一个“pod更新”,而不必像开发人员那样做更多的事情。 :( –