у меня есть это
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
. (Пожалуйста, дайте мне знать, если есть лучший способ. Я не мог различить разницу между 1 и 3 в этот пост.)
Теперь я хочу выполнить некоторые команды и заставить это произойти:
d0
|
d1
|
d2
|
d3
|
d4
\
f1`
|
f2`
|
f3`
|
f4` <- master
Это казалось вероятным:
git checkout feature
git rebase master
Проблема в том, что разрешение слияния для этого конфликта d3/f3 не запоминается. У меня включен rerere
. Я думаю, причина этого в том, что при первом слиянии мы играем d3 на f3, а при перебазировании мы играем f3 на d3. Как вы справляетесь с этой проблемой?
reset
освоить, а затем сделатьmerge --squash
. - person Richard   schedule 07.02.2014