2016-05-12 244 views
1

我真的不知道哪裏去了這一個,並嘗試一切我能想到的。GIT克隆的空目錄

我有一個GitLab服務器在Ubuntu 14.04上運行。我創建了一個post-receive鉤子腳本(bash),將repo克隆到/ tmp目錄中的新文件夾,然後將這些文件複製到安裝的遠程目錄中。如果我在登錄到git用戶時運行腳本,腳本運行良好,但是當它作爲鉤子腳本運行時,它不會。該腳本開始運行正常,但git clone命令的結果是完全空的文件夾。甚至沒有任何回購文件。另外,我沒有從clone命令中得到任何錯誤。克隆命令只返回一行:

(我的命令) 混帳克隆文件:///var/opt/gitlab/git-data/..../999.git 999

(返程) 克隆到'999'

同樣,如果我從同一用戶的命令行運行同一個克隆命令,我沒有這個問題,所以我不認爲這是一個許可的事情。

在哪裏我可以從這裏去任何指針?

謝謝!

回答

1

我不能重現此問題,但可能是因爲您的Git版本比我(我的是2.8.1和2.6添加了對改變了很多有問題的代碼的單獨的工作目錄的新選擇舊的;我不不知道你有什麼版本,但我認爲它早於2.6)。所以這可能不是正確的解決方案,但是可能會是這樣。 :-)

當鉤子腳本運行時,它們有一個環境變量,GIT_DIR,設置爲包含存儲庫中的路徑。對於post-receive,這總是隻有.(post-receive鉤子在版本庫目錄中運行)。這似乎可能導致您的克隆失敗。

如果是這樣,只需unset GIT_DIR在做git clone之前,你的腳本。

+0

就是這樣!非常感謝。我從來沒有得到過這個。 –