我的本地git存储库中有两个分支,master和Logging。两个分支都有BitBucket遥控器。 master是我目前正在进行的项目的主要分支。当其他开发人员完成功能时,他们将其分支合并为master。记录是我当前的功能分支,是从master创建的。
为了获得最新的更新并减少我的合并痛苦,我经常做一个:
git pull origin master
检出Logging分支时。我对此命令的理解是从主分支的远程源获取并将任何更改合并到本地主服务器中。
然后我做了:git merge master
我打算在这里做的是合并我刚刚进入Logging分支的更改。但是git总是响应:
Already up-to-date.
确实看git log和gitk似乎表明我的本地Logging分支已经包含了刚刚提取的master内容。我没想到做一个“git pull origin master”会影响我的Logging分支。我在这里不理解什么?
答案 0 :(得分:7)
Git pull包括合并:
git pull origin master
相当于
git fetch origin
git merge origin/master
即。 将指定的来源分支合并到当前已检出的分支。
仅git fetch origin
根本不会查看当前已检出的分支。它的作用是获取修订并将远程头存储在refs/remotes/origin
命名空间下。这就是git merge origin/master
从中获取的地方(如果名称不符合refs/something
,git会查看refs/heads
,refs/tags
和refs/remotes
)。