1

我的本地 git 存储库中有两个分支,master 和 Logging。两个分支在 BitBucket 上都有遥控器。master 是我目前正在从事的项目的主要分支。当其他开发人员完成功能后,他们会将他们的分支合并到 master。Logging 是我当前的功能分支,是从 master 创建的。

为了获得最新的更新并减少我的合并痛苦,我经常做一个:

git pull origin master

当 Logging 分支被签出时。我对这个命令的理解是它从 master 分支的远程来源获取并将任何更改合并到本地 master 中。

然后我做:

git merge master

我打算在这里做的是合并我刚刚拉入 Logging 分支的更改。然而 git 总是响应:

Already up-to-date.

确实查看 git log 和 gitk 似乎表明我的本地 Logging 分支确实已经包含了刚刚提取的 master 内容。我没想到做一个“git pull origin master”会影响我的日志分支。我在这里不明白什么?

4

1 回答 1

7

Git pull 包括一个合并:

git pull origin master

相当于

git fetch origin
git merge origin/master

即它将指定来源的分支合并到当前签出的分支中。

独自一git fetch origin人根本不查看当前签出的分支。它所做的是获取修订并将远程头存储在refs/remotes/origin命名空间下。这就是从那里git merge origin/master提取它的地方(如果 name 不符合refs/something, git 会在refs/headsrefs/tags中查找refs/remotes)。

于 2013-02-06T12:22:54.460 回答