Git克隆后自动运行任务而不使用git hook

问题描述:

在终端内部运行git clone ..repo..之后,是否可以自动运行.bash脚本?起初我想在post-checkout钩子里面运行像rm -rf .gitcomposer install的命令,但是这个文件只能在本地使用。那么还有其他的选择吗?Git克隆后自动运行任务而不使用git hook

+0

如果不在本地,您希望它在哪里运行? – ElpieKay

+0

它必须在本地运行,但我不想为每个克隆项目的用户手动创建文件。 – CodeWhisperer

mkdir ~/global_hooks 
#create and edit the post-checkout inside 
echo '#!/bin/bash' >> ~/global_hooks/post-checkout 
echo 'rm -rf .git' >> ~/global_hooks/post-checkout 
#... 
chmod 755 ~/global_hooks/post-checkout 
git config --global core.hooksPath ~/global_hooks/ 

与结账(不-n--mirror--bare)任何新的克隆将引发~/global_hooks/post-checkout.git将被删除。但这不是一个好主意,因为您必须启用和禁用不同克隆的挂钩。此外,每个用户都需要进行配置,所以这有点烦人。

更糟糕的是,在没有禁用或覆盖全局钩子的情况下,存储库中的git-checkout将删除它的.git。所以这只是为了好玩,但并不实用。

因此,您希望配置一个回购站,以便当有人克隆它时,它立即转向并删除除了工作树之外的所有东西(使其不再是回购的克隆)?不,git没有办法做到这一点。

如果你只是想自动化这些步骤,因为你有一些频繁的使用情况(可能是一个不寻常的部署机制?),那么你可以编写一个包装脚本来代替git clone命令。

但是,如果你真的想要这个由git clone命令本身触发,这是不可能的。 (这也是没有什么用处,但是这是我的事。)