我收到以下错误:
fatal: https://github.com/username/repository-name.git/info/refs not found: did you run git update-server-info on the server?
如果我尝试在没有首先在github.com上创建它的情况下推送我的存储库。如果我首先在github上创建我的存储库,那么我可以推送分支没问题。这个程序是常规的吗?或者我做错了什么?我认为可以在本地创建一个存储库,而无需先在github上创建它。
答案 0 :(得分:21)
致命:https://github.com/username/repository-name.git/info/refs未找到:您是否在服务器上运行了git update-server-info?
在GitHub上下文中,此消息应理解为“存储库不存在”。你应该推向已经存在的裸存储库。裸存储库是没有工作目录的存储库,通常位于服务器端。
如果我首先在github上创建我的存储库,那么我可以推送分支没问题。这个程序是常规吗?
是。你应该首先在GitHub上创建你的存储库。请参阅 help topic about this
事实上,正如文档中所述“要将项目放在GitHub上,您需要有一个GitHub存储库才能让它存在。”
答案 1 :(得分:2)
我确认你需要先在GitHub上创建你的回购,然后才能推送到(远程)回购。
创建后,您可以将其作为名为“origin”的远程添加到本地仓库,并添加“git push origin master
”(第一次推送)。
答案 2 :(得分:1)
另请注意,存储库名称区分大小写。糟糕!
答案 3 :(得分:1)
您确定要尝试访问的git repo支持HTTPS协议吗?
而不是:git clone https://github.com/TeaCodie/TeaCodie-Website.git
试试这个:git clone git@github.com/TeaCodie/TeaCodie-Website.git
您可能需要配置SSH密钥。
有关详细信息,请参阅:http://git-scm.com/book/ch4-1.html和https://help.github.com/articles/set-up-git以及https://help.github.com/articles/generating-ssh-keys
答案 4 :(得分:0)
我遇到的问题是由于用户没有在主分支上拥有写入权限。
答案 5 :(得分:0)
此外,请确保可以从网络访问存储库URL。
在我的情况下,我的互联网订阅即将到期,因此我的服务提供商将所有HTTP / HTTPS调用重定向到其续订页面。
因此,GIT无法访问存储库。
答案 6 :(得分:0)
克隆本地存储库并通过http提供服务时,我遇到了相同的错误info/refs not found
。
似乎克隆存储库不会创建info / refs文件,因此无法远程提供(https,ssh等) 由于远程无法在不列出.git文件夹的情况下获取master分支的名称,因此info / refs提供了当前git存储库HEAD的路径和commitid。
mkdir clone-without-refs; cd clone-without-refs
git clone ../origin.git .
ls -l .git/info
所以我以这种方式手工创建了它(在源存储库中,假设您运行的是/bin/sh
类型的shell)
gitid=$(git rev-parse HEAD)
echo HEAD: $gitid
echo -e "$gitid\trefs/heads/master" > .git/info/refs
if [ ! -e .git/refs/heads/master ]; then
echo $gitid > .git/refs/heads/master
fi
然后我再次进行克隆,克隆成功了(将$origin
更改为您的克隆):
rm -rf ../cloned
# checking if refs file is there (httpds server side):
origin="http://localhost:8080/~$USER/$(pwd|sed -e "s,$HOME/,,")/.git"
curl $origin/info/refs
git clone $origin ../cloned
# verify
git -C ../cloned log -2