在终端内运行git clone ..repo..
之后是否可以自动运行.bash脚本?起初我想在post-checkout hook中运行rm -rf .git
和composer install
之类的命令,但是这个文件只能在本地使用。那么还有其他选择吗?
答案 0 :(得分:3)
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
。所以这只是为了好玩而根本不实用。
答案 1 :(得分:1)
所以,你想要一个repo配置,当有人克隆它时,它立即转身并删除除工作树之外的所有东西(使它不再是repo的克隆)?不,git
无法做到这一点。
如果您只想自动执行这些步骤,因为您有一些常见的用例(可能是一种不寻常的部署机制?),那么您可以编写一个包装脚本来代替git clone
命令运行。
但如果你真的希望由git clone
命令本身触发,那就不可能了。 (它也没用;但这不关我的事。)