2017-07-26 63 views
0

在終端內部運行git clone ..repo..之後,是否可以自動運行.bash腳本?起初我想在post-checkout鉤子裏面運行像rm -rf .gitcomposer install的命令,但是這個文件只能在本地使用。那麼還有其他的選擇嗎?Git克隆後自動運行任務而不使用git hook

+0

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

+0

它必須在本地運行,但我不想爲每個克隆項目的用戶手動創建文件。 – CodeWhisperer

回答

2
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

因此,您希望配置一個回購站,以便當有人克隆它時,它立即轉向並刪除除了工作樹之外的所有東西(使其不再是回購的克隆)?不,git沒有辦法做到這一點。

如果你只是想自動化這些步驟,因爲你有一些頻繁的使用情況(可能是一個不尋常的部署機制?),那麼你可以編寫一個包裝腳本來代替git clone命令。

但是,如果你真的想要這個由git clone命令本身觸發,這是不可能的。 (這也是沒有什麼用處,但是這是我的事。)