имам това
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