2014-09-12 61 views
1

我在我的Mac上開發並推送給Github。我通過SSH登錄到我的服務器,然後將git修改到服務器上。我想,當我他們推到Github上,所以我一個文件的.git /鉤/本信息如何設置一個從Github中拉出的git鉤子?

#!/bin/sh 

echo 
echo "**** Pulling changes into Live [Hub's post-update hook]" 
echo 

cd /mydirector/html || exit 
unset GIT_DIR 
git pull 

exec git-update-server-info 

還有什麼應該怎麼做更新後得到它的工作的變化自動被牽引到服務器?預先感謝您的回答。這將非常感激。

+0

你也可以只推到github上和服務器 – 2014-09-12 18:54:27

回答

0

你需要認識到,鉤不能工作ok了這個用例的服務器。服務器無法知道你做了推送(除非你有一個github webhook設置和工作,在這種情況下,看@VonC的答案),因此更新的鉤子需要是本地的。 掛鉤是真的不用於這一目的如說這裏:Local executing hook after a git push?

你真正想要做的是把你的變化既github上,你的服務器。最簡單的方法就是推向兩者。看到pull/push from multiple remote locations

通常git鉤子被添加到服務器,以便您推到服務器後,服務器可以做一些額外的東西(如啓動應用程序或其他東西)。 (這裏是一個很好的文章:http://danbarber.me/using-git-for-deployment/


然而,正如你的要求,你可以選擇使用後收到腳本來簡單,做推動。由於git不支持推後git掛鉤,因此必須在git存儲庫上運行。然而,Github不允許這些(它們只允許webhook,當然是出於安全原因)。但是,如果它沒有,你可以這樣做:

#!/bin/sh 
git remote add live [email protected]:www/mysite 
git push live master 

exec git update-server-info 

,並確保設置文件爲可執行chmod a+x post-receive