Git无法推送某些引用?

3
我们在sourcerepo.com上托管了一个裸git仓库。有时,在推送时会出现“错误:无法推送某些引用”,但是推送成功,如果有任何缺失,它并不明显。这不是您必须在推送之前先pull的常见问题,请参见:
2t2% git pull
remote: Counting objects: 57, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 30 (delta 25), reused 0 (delta 0)
Unpacking objects: 100% (30/30), done.
From tiptap.sourcerepo.com:tiptap/2t2
   cb6c0e5..1dfea54  master     -> origin/master
Merge made by recursive.
 app/stylesheets/facebox.scss          |   11 +++
 app/stylesheets/screen.scss           |   28 ++++++--
 app/views/answers/tip_detail.html.erb |    2 +
 app/views/shared/_tip_box.html.erb    |   26 ++++---
 app/views/tip/tip_answer.js.erb       |   37 ++++++++++-
 config/application.rb                 |    2 +-
 public/javascripts/application.js     |    1 -
 public/javascripts/tip_animation.js   |  116 +++++++++++++++++++++++++++++++++
 public/stylesheets/facebox.css        |   11 +++
 9 files changed, 212 insertions(+), 22 deletions(-)
 mode change 100644 => 100755 app/views/shared/_tip_box.html.erb
 mode change 100644 => 100755 app/views/tip/tip_answer.js.erb
 mode change 100644 => 100755 config/application.rb
 mode change 100644 => 100755 public/javascripts/application.js
 create mode 100755 public/javascripts/tip_animation.js
2t2% git push
Counting objects: 18, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 1.54 KiB, done.
Total 10 (delta 7), reused 0 (delta 0)
To git@tiptap.sourcerepo.com:tiptap/2t2.git
   1dfea54..faf6014  master -> master
error: failed to push some refs to 'git@tiptap.sourcerepo.com:tiptap/2t2.git'

我能找到的所有关于这个错误的讨论都是关于先拉再推或pack-objects死亡的;在实际应用中,这个错误意味着什么,我们应该怎么做呢?


1
既然您正在为sourcerepo提供托管服务,为什么不向他们寻求技术支持呢?他们知道服务器上发生了什么 - 我们不知道。 - Robin Green
1
我已经与他们的二级技术支持人员交谈过了,但我没有任何证据支持你所说的他们知道服务器上正在发生什么的断言。唉。 - Jay Levitt
4个回答

10

如果您忘记创建第一个提交并开始推送,就可能会发生此错误。因此,您需要创建第一个提交。

git add .
git add -u
git commit -m "First commit"
git push

谢谢,那就是解决方案。 - Bjorn

3

当服务器终止长时间运行的进程或存在某些网络问题时,它可能会间歇性地发生。此外,服务器上可能存在某些文件由不同用户拥有的权限问题。


我认为你说的有道理。我们在办公室网络时常会出现间歇性的数据包丢失。如果 Git 在这方面处理得不好(虽然在 TCP 协议上很稳定),也许就是导致问题的原因。 - Jay Levitt
这实际上是一个与源代码库有关的问题。通过切换到Github解决了! - Jay Levitt

1
我曾经遇到过类似的问题。由于某种原因,我的 .git/config 文件中缺少了一个 [branch "master"]。添加这一行后问题得以解决。

如果我理解正确,那么这不会一直导致错误吗?正是间歇性让人困惑。 - Jay Levitt
1
我错过了“间歇”修饰符。也许,有人看到这篇文章时,会发现我的回答对于非间歇情况很有用。 - rlandster

0

这个问题对我来说是从服务器端的仓库初始化开始的。 我做了:

git init

而不是:

git --bare init

现在推送已经可以了。:)


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