【问题标题】:Creating a branch from a remote branch (EGit)从远程分支创建分支 (EGit)
【发布时间】:2013-01-29 22:06:40
【问题描述】:

我在 eclipse juno 中使用 EGit 2.1.0。

在存储库上,我右键单击 Remote Tracking 文件夹中的 origin/master 分支并创建一个新分支:

Source ref: refs/remotes/origin/master
Branch name: refs/heads/MyFeature
Merge=true
Checkout=true

所以 MyFeature 分支基于创建时的 origin/master 内容。因此,在 Local 文件夹中创建了一个本地分支 MyFeature

如果我配置的分支是:

Upstream Branch: refs/heads/master
Remote: origin

我对最后一部分感到困惑。 MyFeature 分支基于 origin/master。为什么默认从本地 master 分支而不是远程 master 分支(它基于)拉取更改?

从命令行你会这样做:

$ git branch --track MyFeature origin/master
Branch MyFeature set up to track remote branch refs/remotes/origin/master.

【问题讨论】:

    标签: eclipse git egit


    【解决方案1】:

    '上游分支'是指上游仓库中的分支。 “refs/heads/master in origin”是另一种(更长但更准确)的表达方式“origin/master”。

    【讨论】:

    • 好的,所以它的分支似乎来自“远程”视图中选择的任何内容。我想等价的应该是:"Upstream branch=refs/remotes/origin/master", remote="."
    • 几乎,除了当你运行git pull
    • 类似,您可能想查看 GitGuys 的 article 关于该主题的内容。 refs/remotes/origin/master 是您在origin 远程上的refs/heads/master 分支的本地副本。您的本地 refs/heads/MyFeature 分支正在使用其本地副本(远程跟踪器)refs/remotes/origin/masterorigin 上跟踪 refs/heads/master
    【解决方案2】:

    如果您检查 .git/config 文件或运行 git config -l,您将看到以下内容:

    branch.MyFeature.remote=origin
    branch.MyFeature.merge=refs/heads/master
    

    这意味着您的 MyFeature 分支会跟踪您的原始远程的 refs/heads/master ref(简称 master 分支)。在这种情况下, refs/heads/master 并不意味着您的本地 refs/heads/master,而是从远程的角度来看。因此,当您从遥控器获取/拉取时,它会发送如下消息:“亲爱的 Origin!请将您的 refs/heads/master 发送给我。谢谢。” :)

    【讨论】:

      猜你喜欢
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-05-07
      • 1970-01-01
      • 2013-02-08
      • 2021-06-21
      • 2015-03-30
      • 2014-08-09
      相关资源
      最近更新 更多