git push error"错误:src refspec xxx与any不匹配." 使用git flow

new*_*ike 6 git github git-flow

我曾经在我的私人git服务器上创建一个repo

git init --bare
Initialized empty Git repository in /home/poc/git_repo/local_display_multi_langs            .git/
Run Code Online (Sandbox Code Playgroud)

然后我试着add remote在我的mac上工作.

git remote add origin ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git
Run Code Online (Sandbox Code Playgroud)

执行以下命令

  514  git flow init
  519  git flow feature start read_xml
  524  git ci -am "first ci"
Run Code Online (Sandbox Code Playgroud)

然后尝试将所有分支推送到我的私有git服务器的repo并获得如下例外

[src] $ git push origin feature
poc@172.19.16.101's password:
error: src refspec feature does not match any.
error: failed to push some refs to 'ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git'
Run Code Online (Sandbox Code Playgroud)

我错过或误用了一些步骤吗?

如何将我的工作副本上的所有分支推送到远程服务器?

然后当我从我的git服务器克隆项目时.

如何获得新的克隆项目和原始项目是完全相同的.

谢谢

感谢@VonC

现在,我可以将本地工作副本上的所有分支推送到远程服务器

git push origin --all

但是当我ssh://poc@172.19.16.101/home/poc/git_repo/local_display_multi_langs.git 在另一个文件夹下执行git clone时.

[local_display_multi_langs] $ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature/read_xml
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

我看到上面的枝子对我来说很奇怪.

因为我希望获得与原始工作副本相同的结果,如下所示.

有没有办法得到 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
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 2

如何将工作副本上的所有分支推送到远程服务器?

你至少可以做:

git push origin --all
Run Code Online (Sandbox Code Playgroud)

' feature' 是 git-flow 的命令,而不是分支的名称。
请参阅gitflow 备忘单

' feature' 翻译成分支命名空间,定义分支层次结构。
仅推送那些功能分支将是:

git push origin refs/heads/feature/*:refs/remotes/origin/feature/*
Run Code Online (Sandbox Code Playgroud)

或者您可以在 .gitconfig 中注册 refspec