我正在开发一个名为sidebar的远程分支,就像这样创建(来自我的电脑,而不是远程仓库):
$ git branch sidebar
$ git checkout sidebar
$ git push -u origin sidebar
$ git pull origin sidebar
在侧边栏分支上进行一些提交之后,我将其推送到了repo:
$ git push origin sidebar
现在看来侧栏被合并为主人,我不明白为什么:
$ git log --graph
* commit 3830b6e72f4249cd15c7a35e47a2
| Author: me
| Date: Mon Apr 30 16:56:28 2012 +0200
|
| re-build sidebar boxes
|
* commit e97e63b05a522e29d3ca97a509e3652d
|\ Merge: eb1ebfd ed10585
| | Author: me
| | Date: Sat Apr 28 15:54:19 2012 +0200
| |
| | Merge branch 'master' of
| |
| * commit 6495e5bd7ac12364a4a12389f58
| | Author: misterX
| | Date: Sat Apr 28 03:46:58 2012 +0200
| |
| | FB: add friend list with statistics
| |
* | commit eb89c0bbb5516b1ed795b9fc958
|/ Author: me
| Date: Sat Apr 28 15:54:08 2012 +0200
|
| add product img lens icon
你知道发生了什么事,我错在哪里吗?
编辑:也许以下内容可以提供帮助
$ git remote show origin
Password:
* remote origin
Fetch URL: user@repo
Push URL: user@repo
HEAD branch: master
Remote branches:
master tracked
sidebar tracked
Local branches configured for 'git pull':
master merges with remote master
sidebar merges with remote sidebar
Local refs configured for 'git push':
master pushes to master (local out of date)
sidebar pushes to sidebar (fast-forwardable)
答案 0 :(得分:0)
gitlog表明发生了以下情况:
0200)。这导致了一个fork,因为你的提交和misterX中的提交都是基于
git pull
。 Git非常聪明,此时注意到侧边栏分支的本地负责人在一次提交中因远程侧边栏头而不同,由于没有发生合并冲突,因此默默地合并了提交。这是完全正常的行为,除了声明在分支主机上发生这种情况的消息。您使用的git版本有错误,或者您偶尔通过git checkout master
切换到主版 - 检查git branch
的输出在侧节点上,如果您不想要这种合并行为,则可以使用git pull --rebase
代替,这将尝试在您上次提取后推送其他人推送的所有提交。历史看起来会更清晰,尽管提交日期可能会建议某人有时间旅行......