0

概括

  • Github Chocolatey Repository 已被分叉为拥有 Github 帐户 Chocolatey-1
  • installchocolateyservice已创建一个新分支
  • installchocolateyservice 已被拉取
  • 推送 installchocolateyservice 分支失败,但它可以推送到 master
  • git branch表示只有master被识别

详细

在 Chocolatey Fork 中创建的额外分支

在此处输入图像描述

除了 master 拉的其他分支

C:\chocolatey-1>git pull origin installchocolateyservice
remote: Reusing existing pack: 4611, done.
remote: Counting objects: 25, done.
remote: Compressing objects: 100% (25/25), done.
rRemote: Total 4636 (delta 11), reused 0 (delta 0)eceiving objects: 100% (4636/4
Receiving objects: 100% (4636/4636), 21.86 MiB | 276.00 KiB/s, done.

Resolving deltas: 100% (2792/2792), done.
From github.com:030/chocolatey-1
 * branch            installchocolateyservice -> FETCH_HEAD
 * [new branch]      installchocolateyservice -> origin/installchocolateyservice

推送安装chocolateyservice 分支失败

C:\chocolatey-1>git push origin installchocolateyservice
error: src refspec installchocolateyservice does not match any.
error: failed to push some refs to 'git@github.com:030/chocolatey-1.git'

推送到大师作品

C:\chocolatey-1>git push origin master
Everything up-to-date

仅识别主分支

C:\chocolatey-1>git branch
* master

C:\chocolatey-1>
4

1 回答 1

2

这个命令

git branch
* master

不显示您的新分支,因为它还没有作为本地分支存在,仅作为远程跟踪分支存在。--remotes如果您通过/-r--all/-a选项,您将能够看到它,

git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/installchocolateyservice 
  remotes/origin/master

从远程分支创建本地分支

如果您想创建分支的本地版本,正确的方法是使用git fetch后跟结帐,而不是git pull,因为git pull是 fetch 然后合并到您的当前分支。

所以正确的命令序列是

git fetch origin
git checkout -b installchocolateyservice origin/installchocolateyservice 

请注意,如果您签出一个不存在的本地分支X,并且有一个名为 的远程跟踪分支,那么将创建origin/X一个新的本地分支并设置为默认跟踪它。所以,换句话说,除了使用上面的命令,你也可以这样做Xorigin/X

git fetch origin
git checkout installchocolateyservice

现在你有了一个合适的本地分支,你应该能够推送到远程分支:

git push origin HEAD
# Or
git push origin installchocolateyservice
于 2014-07-04T21:18:38.273 回答