我想在一台我们都有权访问的机器上与其他几个人分享一个小项目。我用
创建了本地仓库的裸照副本git clone --bare --no-hardlinks path/to/.git/ repoToShare.git
然后我将repoToShare.git移动到服务器。
我可以通过以下方式查看:
git clone ssh://user@address/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
有什么想法吗?
答案 0 :(得分:19)
Git在hooks目录中安装了一堆预先配置好的钩子,开箱即用它们不会执行。如果您碰巧允许对它们执行(例如.chmod + x),那么git将尝试运行它们。弹出特定错误导致默认更新无法运行。要修复,请删除默认的更新挂钩。
this link有帮助吗?从文字:
我的一位同事经历了一次 类似的问题在这里推动不是 工作。你不能推到当地 或远程公共存储库。他是 获取项目描述文件 没有被设置的错误抛出 的.git /钩/更新。这个错误不是 发生在同一个项目上 linux或Windows框,似乎是 仅在Windows Vista上发生。从 我的研究挂钩/更新不是 默认执行,但在Windows Vista中 文件权限意味着它 是。已删除钩子/更新已解决 这些问题。
答案 1 :(得分:16)
删除挂钩/更新不是您想要做的。
只需将.git / description更改为您想要的任何内容 - 例如“FOOBAR repository”,或者,如果您是法语,则“Le depot de FOOBAR”。
答案 2 :(得分:2)
从Mac OS X(Git版本1.6.1,使用MacPorts编译)推送到Ubuntu远程存储库(Git版本1.5.4.3)时,我也遇到了这个错误
我在本地和远程存储库的.git
/ description文件中添加了存储库的名称并修复了它。
答案 3 :(得分:1)
chmod -x hooks / update
从.git目录执行的上述命令只会从更新挂钩中删除执行权限。无需删除文件
答案 4 :(得分: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
当我评论它们时,一切正常。
答案 5 :(得分:0)
我和@dragulesq有同样的问题,但有一个Red Hat服务器。
要更加冗长,只需将您想要的任何内容放在本地的.git / description文件中(在我的情况下是我的Mac OS X);我把网站然后放在托管Git仓库的远程服务器上(可以这么说)编辑.git / description文件并再次输入相同的字符串(例如 website )。