如何创建一个继承父遥控器的新分支

时间:2013-10-25 19:42:39

标签: git

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

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

    git checkout -b myNewBranch

  2. 将分支推送到远程

    git push -u RemoteRepo myNewBranch

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

2 个答案:

答案 0 :(得分:2)

我发现你的问题有点令人困惑,但让我们看看这是否正确。

  1. 您从某个原始计算机repo克隆了一个repo O
  2. repo中,您有一个跟踪b的本地分支origin/b,即b上名为O的分支。你在上面(git checkout b)。
  3. 您现在想要创建一个新分支nbnb上没有分支O
  4. 您希望nb跟踪不存在的分支origin/nb
  5. 最后一步是不可能的(因为)origin/nb尚不存在。您必须先创建它(如上面的git push -u命令)。使用-u进行推送将在nb上创建O并在(本地)创建origin/nb并将nb的上游分支设置为origin/nb。< / p>

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

    $ 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.
    

答案 1 :(得分:0)

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

git checkout -b mybranch remote/rembranch

这将从mybranch开始创建分支remote/rembranch