0

我有一个带有跟踪远程分支的本地存储库。我想从继承遥控器的那个分支上创建一个新分支,这样我就可以将新分支推送到遥控器。

  1. 在我们想要在新分支中但不想推送的跟踪本地分支上。

    git checkout -b myNewBranch

  2. 将分支推送到远程

    git push -u RemoteRepo myNewBranch

目前我必须首先将新分支上的远程设置为远程仓库。

4

2 回答 2

2

我发现你的问题措辞有点混乱,但让我们看看这是否正确。

  1. 你有一个repo从一些原始机器克隆的 repo O
  2. repo中,您有一个b正在跟踪的本地分支origin/b,即名为bon的分支O。你在上面(git checkout b)。
  3. 您现在要创建一个新分支,nb. nb上没有分支O
  4. 您想nb跟踪不存在的分支origin/nb

最后一步是不可能的(还),因为origin/nb还不存在。您必须先创建它(如git push -u上面的命令)。推送-u将创建nbonO并且(本地)创建origin/nb并设置上游分支nbto origin/nb

请注意,如果您尝试设置上游:

$ git checkout -b nb
... optionally, add various commits here ...
$ git branch --set-upstream-to=origin/nb

你会得到一个错误:

error: the requested upstream branch 'origin/nb' does not exist
hint: 
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint: 
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.

因此,您必须完全按照上面的建议进行操作,并显示在“提示”中:

$ git checkout -b nb
... optionally, add various commits here ...
$ git push -u origin nb
Counting objects: 10, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (7/7), 633 bytes | 0 bytes/s, done.
Total 7 (delta 2), reused 0 (delta 0)
To ssh://[redacted]
 * [new branch]      nb -> nb
Branch nb set up to track remote branch nb from origin.
于 2013-10-25T19:49:39.433 回答
0

如果您没有未提交的更改(使用 进行检查git status),只需通过在第二个参数处指定起点来检查远程分支:

git checkout -b mybranch remote/rembranch

这将创建分支mybranch,从remote/rembranch.

于 2013-10-25T19:46:29.877 回答