为什么我不能推到这个裸仓库?

你能解释这个工作流程有什么问题吗?

$ git init --bare bare
Initialized empty Git repository in /work/fun/git_experiments/bare/
$ git clone bare alice
Cloning into alice...
done.
warning: You appear to have cloned an empty repository.
$ cd alice/
$ touch a
$ git add a
$ git commit -m "Added a"
[master (root-commit) 70d52d4] Added a
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a
$ git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '/work/fun/git_experiments/bare'

git push不会总是推送到我从克隆的存储库中?


是的,问题是没有“裸露”的提交。 如果您按顺序创建仓库(裸设备,alice),则仅第一次提交时会出现问题。 尝试做:

git push --set-upstream origin master

这只是第一次需要。 之后它应该可以正常工作。

正如克里斯约翰森指出的,如果你的push.default是自定义的,你就不会有这个问题。 我喜欢上游/跟踪。


如果你:

 git push origin master

它会推到裸露的回购。

这听起来像你的爱丽丝回购没有正确跟踪。

cat .git/config

这将显示默认的远程和分支。

如果你

 git push -u origin master

你应该开始跟踪那个远程和分支。 我不确定这个选项是否一直在git中。


这个相关问题的答案为我提供了解决方案...这只是一个愚蠢的错误:

记得首先提交!

https://stackoverflow.com/a/7572252

如果您还没有提交到您的本地回购协议,那么您无法推送任何内容,但是您收到的Git错误消息不会对您有太大帮助。

链接地址: http://www.djcxy.com/p/48955.html

上一篇: Why can't I push to this bare repository?

下一篇: Git error: src refspec master does not match any