我在我的本地git存储库中有两个分支,master和Logging.两个分支都有BitBucket遥控器.master是我目前正在进行的项目的主要分支.当其他开发人员完成功能时,他们将其分支合并为master.日志记录是我当前的功能分支,是从master创建的.
为了获得最新的更新并减少我的合并痛苦,我经常做一个:
git pull origin master
Run Code Online (Sandbox Code Playgroud)
同时检出Logging分支.我对此命令的理解是从主分支的远程源获取并将任何更改合并到本地主服务器中.
然后我做:
git merge master
Run Code Online (Sandbox Code Playgroud)
我打算在这里做的是合并我刚刚进入Logging分支的更改.但是git总是响应:
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
事实上,查看git log和gitk似乎表明我的本地Logging分支已经包含了刚刚提取的master内容.我没想到做一个"git pull origin master"会影响我的Logging分支.我在这里不理解什么?
Git pull包含一个合并:
git pull origin master
Run Code Online (Sandbox Code Playgroud)
相当于
git fetch origin
git merge origin/master
Run Code Online (Sandbox Code Playgroud)
也就是说,它合并指定的起源的分支到当前已签出的分支.
在git fetch origin本身并不在当前已签出分支看看所有.它的作用是获取修订并将远程头存储在refs/remotes/origin命名空间下.这就是git merge origin/master从中获取的地方(如果名称不合格refs/something,git查找refs/heads,refs/tags并且refs/remotes).
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |