我有这个
d0 -----
| \
| ------ f1
d1 |
| |
| |
d2------ f2
| \ |
| \ |
d3 \ |
| --- merge
| |
d4 --- f3
\ |
\ |
\ |
----- merge
|
|
f4
不,真的。我实际上做了这样的回购。请注意,我必须修复d3和f3之间的合并冲突。
C:\dev\git-test> git tree
* 9a169c2 (HEAD, feature) f4
* 1396e5c fixed master -> feature merge conflict
|\
| * 7ececbd (MASTER) d4
| * a2be7eb d3
* | 8c11a80 f3
* | caa9068 Merge branch 'master' into feature
|\ \
| |/
| * 576ac31 d2
| * fe78786 d1
* | 4e7ac84 f2
* | f3e13dc f1
|/
* 15a0d51 d0
我经常将master
合并到feature
,因为feature
已共享,因此定期将feature
重新定位到master
将是一场噩梦。每位开发人员都拥有feature
的私人副本,并将其重新定位到origin/feature
。为了防止master
和feature
发生分歧,我会定期在master
拼接。 (如果有更好的方法,请告诉我。我无法辨别this post中1和3之间的区别。)
现在我想执行一些命令并导致这种情况发生:
d0
|
d1
|
d2
|
d3
|
d4
\
f1`
|
f2`
|
f3`
|
f4` <- master
这似乎很可能:
git checkout feature
git rebase master
问题是不会记住d3 / f3冲突的合并解决方案。我确实打开了rerere
。我认为这样做的原因是在第一次合并中我们将d3播放到f3上,而在rebase中我们将f3播放到d3上。你是如何处理这个问题的?