Git致命错误:未找到引用。

3

当我尝试推送到运行GitStack的Windows服务器时,出现了以下错误:

fatal: http://xx.xx.x.xxx/mjtest.git/info/refs未找到:您是否在服务器上运行git update-server-info?

这个错误似乎很常见,特别是对于新手使用Git、GitBash和GitStack的人来说。我已经找到了一些可能的解决方案,但是没有一个适用于我。

我的操作步骤如下,首先在GitStack中创建一个名为mjtest的空仓库,然后创建一个用户并将其添加到仓库中,并给予读写访问权限,接着使用GitBash创建一个本地仓库并尝试推送它。

git config --global user.name "XXXXXXX"
git config --global user.email XXXXXXX
mkdir ~/mjtest
cd ~/mjtest
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin http://XX.XX.X.XXX/mjtest.git
git push origin master

接下来会要求输入用户名和密码,我已经正确输入了。但是一旦输入完成,就会返回致命错误信息。

如果能提供帮助将不胜感激。


你在服务器上运行了git update-server-info命令吗? - Mat
我刚刚输入了 git update-server-info,但似乎没有任何效果。 - MikeyJ
2个回答

2
这段文字可能与控制访问问题有关。
通常情况下,当仓库未被设置为可导出(通过git-daemongitweb)时会发生这种情况:GitStack可能依赖于类似的机制。
例如,请参阅此线程

我在其中一个仓库中创建了一个名为“git-daemon-export-ok”的“空”文件。
现在我可以克隆/推送/拉取此仓库而没有任何问题。

该文件应直接创建在服务器上裸仓库的xxx.git根目录下。


感谢您的帮助,我使用 touch git-daemon-export-ok 在我的本地仓库中创建了文件,并尝试将其推送到远程仓库,但仍然遇到相同的错误。它必须放置在本地仓库的特定位置吗? - MikeyJ
@MikeyJ 它应该在服务器上你的裸仓库的 xxx.git 根目录下创建。 - VonC
@MikeyJ 太棒了!我已经编辑了答案,让该文件的路径更加明确。 - VonC
@AlfonsoFernandez-Ocampo 那将是一个新问题的良好基础(包括所使用的操作系统和服务器端和客户端的 Git 版本)。 - VonC

1
我查看了C:/GitStack/apache/logs/error.log文件,发现GitStack在寻找存储库的位置时出错了,尽管其设置为D:/Repositories(我的自定义位置),但GitStack仍然在其默认位置寻找存储库。所以我只需从GitStack管理页面重新保存设置即可解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接