2

我在 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.
4

2 回答 2

3

“上游分支”是指上游存储库中的分支。“ refs/heads/masterin origin” 是另一种(更长但更精确)的表达“ origin/master”的方式。

于 2013-01-29T22:30:45.127 回答
1

如果您检查 .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-01-29T22:37:44.693 回答