2008-10-14 57 views
11

我有一個小型項目,我想在我們都有權訪問的機器上與其他人分享。我創建了一個本地回購的裸副本git中的「項目描述文件」錯誤?

git clone --bare --no-hardlinks path/to/.git/ repoToShare.git 

然後,我將repoToShare.git移至服務器。

我可以用下面的檢查出來:

git clone ssh://[email protected]/opt/gitroot/repoToShare.git/ test 

然後我就可以看到本地回購的一切,並針對提交。當我嘗試將更改推回遠程服務器時,出現以下錯誤。

*** Project description file hasn't been set 
error: hooks/update exited with error code 1 
error: hook declined to update refs/heads/master 

任何想法?

回答

19

Git在鉤子目錄中安裝了一堆預配置的鉤子,它們不會執行。如果你碰巧允許執行它們(例如,chmod + x),那麼git會嘗試運行它們。彈出特定的錯誤會導致默認更新無法運行。要修復,請刪除默認的更新掛鉤。

this link有幫助嗎?從文本:

我的一位同事經歷了 類似的問題在這兒,推不 工作。您無法推送到本地 或遠程公共存儲庫。他是 獲取項目描述文件 尚未設置錯誤由 .git/hooks/update引發。此錯誤不是 發生在 linux或Windows框中的同一項目上,似乎是 僅在Windows Vista上發生。從 我的研究掛鉤/更新是不是通過 默認執行,但在Windows Vista 文件權限意味着它 是。刪除掛鉤/更新已解決 這些問題。

+1

確切的問題是,如果掛鉤/更新腳本具有執行權限,它將嘗試並執行,這意味着你的東西會中斷。 :( – 2008-10-14 07:54:50

+1

Git 1.6應該通過忽略預先安裝的鉤子來解決這個問題,直到你重命名它們。所以,當Git 1.6變得普遍時,Windows上更新的Git用戶應該會停止看到這個問題。 – tialaramex 2008-10-14 18:05:13

16

刪除掛鉤/更新不是你想要做的。

只需將.git/description更改爲任何你想要的內容 - 例如「FOOBAR存儲庫」,或者如果你是法語的話,就可以使用「Le depot de FOOBAR」。

2

從Mac OS X(GIT版本1.6.1,與MacPorts編譯)推到Ubuntu的遠程倉庫時,我得到這個錯誤以及(GIT版本1.5.4.3)

我添加的名稱存儲庫位於本地和遠程存儲庫上的.git/description文件中,並對其進行了修復。

0

我與@dragulesq有相同的問題,但有Red Hat服務器。

只需將你想要的任何字符串放在你本地的.git/description文件中(在我的Mac OS X上)即可。我把網站,然後在託管Git倉庫的遠程服務器上(可以這麼說)編輯.git/description文件並再次放入相同的字符串(例如網站)。

1

CHMOD -x鉤/更新

從.git目錄執行將僅刪除從更新鉤執行權限以上命令。無需刪除文件

1

刪除文件或阻止其執行似乎極端的解決方案。如果您不想添加項目描述,那麼足夠的註釋或刪除阻止推送操作的鉤子/更新中的行。在我的文件中,這些行是:

# check for no description 
projectdesc=$(sed -e '1q' "$GIT_DIR/description") 
if [ -z "$projectdesc" -o "$projectdesc" = "Unnamed repository; edit this file to name it for gitweb." ]; then 
     echo "*** Project description file hasn't been set" >&2 
     exit 1 
fi 

當我評論他們,一切工作正常。