簡體   English   中英

無法拉入git鈎子(bash腳本)

[英]Not being able to pull in a git hook (bash script)

我正在Ubuntu 12.04服務器上的網站上工作。 當我將代碼推送到我的網站時,我希望我的鈎子自動pull代碼pull到我的apache文件夾中。 以下命令將我的網站更新為資源庫的當前主站點,而沒有任何問題:

cd /var/www/www.foo.net
git pull

post-update掛鈎是應該自動執行的操作,但是每次我推送時都會遇到相同的錯誤。 請注意,每次推送均正確執行。 腳本看起來像這樣(不相關的代碼被省略):

#!/bin/bash
BRANCH=$(git rev-parse --symbolic --abbrev-ref $1)
case "$BRANCH" in
"somebranch")
        echo "You are pushing to somebranch!"
        cd /var/www/www.foo.net
        pwd
        git pull
        ;;
esac

在我看來,這看起來應該可行,尤其是考慮到調試輸出正是我期望的那樣。 但是,它不起作用。 我總是得到以下輸出:

remote: You are pushing to somebranch!
remote: /var/www/www.foo.net/
remote: fatal: Not a git repository: '.'

請注意,它如何報告它在正確的目錄中,並且如上所述,我能夠毫無問題地拉入該目錄。 /var/www/www.foo.net/ 一個git存儲庫。

我也嘗試使用( cd /var/www/www.foo.net/ ; git pull )但無濟於事。 我也認為它與權限無關。 我正在使用Gitolite,並且能夠使用與Gitolite一起設置的帳戶來拉到本地存儲庫。

有任何想法嗎? 我一點都沒有喜悅。

如果/var/www/www.foo.net/是有效的git repo try

git --git-dir=/var/www/www.foo.net/.git --work-tree=/var/www/www.foo.net pull

這將導致FF拉動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM