Git克隆后自动运行任务而不使用git hook
问题描述:
在终端内部运行git clone ..repo..
之后,是否可以自动运行.bash脚本?起初我想在post-checkout钩子里面运行像rm -rf .git
和composer install
的命令,但是这个文件只能在本地使用。那么还有其他的选择吗?Git克隆后自动运行任务而不使用git hook
答
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
命令本身触发,这是不可能的。 (这也是没有什么用处,但是这是我的事。)
如果不在本地,您希望它在哪里运行? – ElpieKay
它必须在本地运行,但我不想为每个克隆项目的用户手动创建文件。 – CodeWhisperer