我有以下分支机构:
- 主控
- 升级到查询1.4
- 处理异常
我在upgradingToJquery1.4分支上工作,并提交了一些文件。
我创建了另一个分支handlingExceptions做了一些修改并提交了它们。
然后我切换回master并合并了handlingExceptions分支。令人惊讶的是,我认为upgradeToJquery1.4分支中的更改也被合并了。然后为了确认,我合并了upgradeToJquery1.4分支,它显示为最新。
有人能解释一下这张图说明了什么吗?
git log --oneline --decorate --graph --all
* a54bd6d (HEAD, master) Merge branch 'upgradeToJquery1.4'
|\
| * d4f762c (upgradeToJquery1.4) main.sass updated
* | bcf7a4f Merge branch 'handlingExceptions'
|\ \
| * | 471c1ad (handlingExceptions) the postLogin method in the accountController catches the exceptions and now prov
| |/
| * 76145d1 1. css/images - Jquerymobile icon files
| * 34bc7b9 custom-jqueryMobile.js - to override jquerymobile defaults. Currently added transitions doesn't work with p
1条答案
按热度按时间kmpatx3s1#
从结构上看,你有这样的(我在这里所做的只是水平地重新绘制图表):
其中:
这里有不同的方法,但是假设您创建了
handlingExceptions
(大概使用git checkout -b
),最直接的方法可能是:另一种不同的方法是:
或者你可以用
git checkout -b handlingExceptions HEAD^
来创建handlingExceptions
,这样提交C
就可以得到B
作为其父提交。无论如何,在
git merge handlingExceptions
发生的时候,你在master
上,并且handlingExceptions
指向提交C
,所以创建了提交E
。提交消息和图节点在以下方面相互支持:E
的父节点是未显示的东西(第一父节点)和C
(第二父节点).然后,当仍然在master
上时,一个 * 单独的 *git merge upgradeToJquery1.4
创建了提交F
,其父节点是E
(第一父节点)和D
(第二父节点).在任何情况下,分支标签现在都指向提交
D
、C
和F
。