欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Git Tip: git push ‘No refs in common and none specified’

程序员文章站 2022-07-14 10:55:43
...
源:http://blog.csdn.net/fudesign2008/article/details/8692696
评:


@see http://www.thebuzzmedia.com/git-tip-git-push-no-refs-in-common-and-none-specified/


Git is a source-control tool used by software developers.

I recently switched from Subversion to Git and while things have been mostly smooth, there have been a few “WTF?” moments. I am going to try and blog the few beginner ones I ran into in hopes of helping anyone else.

Today I ran a ‘git push’ to shove my commits from my local repository back into the main remote repo, the result was this:

    $ git push
    No refs in common and none specified; doing nothing.
    Perhaps you should specify a branch such as 'master'.
    error: failed to push some refs to 'git@github.com:painfreepr/<repo>.git'

The odd bit is that I had just done this with a previous repo about 30 mins ago and it worked fine; this was a new repository I was setting up. As it turns out this is the result of originally cloning an empty repository (link, link) which is exactly what I did. I had created a new repo on GitHub and wanted to pull the repo down in IntelliJ to then add some files to it via the GUI instead of from the command line; so I had checked out the empty repo right after creating it.

The fix, fortunately, is dead easy:

    $ git push origin master

Doing this should provide output like:

    $ git push origin master

    Counting objects: 568, done.

    Delta compression using up to 2 threads.

    Compressing objects: 100% (559/559), done.

    Writing objects: 100% (568/568), 2.28 MiB | 2.18 MiB/s, done.

    Total 568 (delta 205), reused 0 (delta 0)

    To git@github.com:painfreepr/<repo>.git

    * [new branch]      master -> master

It is my understanding that the core issue is that there are no files in commonbetween the original remote repo you cloned (empty) and the one on-disk (now full of files). Doing the git-push-origin-master shoves your repo up into the empty repository and gives you that common base again so you can do a ‘git push‘ without issue.

Happy Git’ing!