Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git push error "error: src refspec xxx does not match any." using git flow

I used to create an repo on my private git server

git init --bare
Initialized empty Git repository in /home/poc/git_repo/local_display_multi_langs            .git/

Then I tried to add remote in my working copy on my mac.

git remote add origin ssh://[email protected]/home/poc/git_repo/local_display_multi_langs.git

Executed the following commands

  514  git flow init
  519  git flow feature start read_xml
  524  git ci -am "first ci"

Then tried to push all branches to my private git server's repo and got the exceptions as following

[src] $ git push origin feature
[email protected]'s password:
error: src refspec feature does not match any.
error: failed to push some refs to 'ssh://[email protected]/home/poc/git_repo/local_display_multi_langs.git'

Did I miss or misuse some steps ?

How to push all the branches on my working copy to remote server ?

Then When I clone the project from my git server.

How to get the new cloned project and original project are identical.

Thanks

Thanks for @VonC

Now I can push all the branches on my local working copy to remote server by

git push origin --all

But When I do git clone ssh://[email protected]/home/poc/git_repo/local_display_multi_langs.git under another folder.

[local_display_multi_langs] $ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature/read_xml
  remotes/origin/master

I saw the above branches which are strange to me.

Because I expect get the same results as the original working copy like the following.

Is there any way to get clone from my remote server and restore the status as the original working copy

[local_display_multi_langs] $ git br
  develop
* feature/read_xml
  master
like image 916
newBike Avatar asked Dec 05 '13 06:12

newBike


1 Answers

How could I push all the branched on my working copy to remote server ?

You can do at least a:

git push origin --all

'feature' is a command of git-flow, not the name of a branch.
See gitflow cheatsheet.

'feature' translate into a branch namespace, defining a branch hierarchy.
Pushing only those feature branches would be:

git push origin refs/heads/feature/*:refs/remotes/origin/feature/*

Or you can register the refspec in a .gitconfig.

like image 82
VonC Avatar answered Nov 17 '22 03:11

VonC