2013-04-17 8 views
7

Mam dwie gałęzie Z z niektórymi zmienionymi i M z pewnymi sprzecznymi zmianami. Chciałbym połączyć pierwszą zmianę Z na M. Kiedy próbuję zobaczyć, które zmiany są nadal obecne. (Istnieje rzeczywiście jeszcze kilka zmian, ale to już pokazuje problem)Wyrywanie wiśni z git z konfliktem

$ git checkout M 
$ git cherry M Z 
+ 153c2f840f2192382be1fc435ceb069f0814d7ff 
+ 4a7979d5dd526245b51769db21acf4c286825036 

$ git cherry-pick 153c2f840f2192382be1fc435ceb069f0814d7ff 
error: could not apply 153c2f8... add Z 
hint: after resolving the conflicts, mark the corrected paths 
hint: with 'git add <paths>' or 'git rm <paths>' 
hint: and commit the result with 'git commit' 
• (M|CHERRY-PICKING) $ git st 
# On branch M 
# Unmerged paths: 
# (use "git add/rm <file>..." as appropriate to mark resolution) 
# 
# both modified:  README.txt 
# 
no changes added to commit (use "git add" and/or "git commit -a") 
• (M|CHERRY-PICKING) $ vim README.txt 

Naprawiłem konflikt tutaj

• (M|CHERRY-PICKING) $ git add README.txt 
• (M|CHERRY-PICKING) $ git ci -m'cherry picked' 
    [M dc5de35] cherry picked 
    1 file changed, 1 insertion(+), 1 deletion(-) 
• (M) $ git cherry M Z 
+ 153c2f840f2192382be1fc435ceb069f0814d7ff 
+ 4a7979d5dd526245b51769db21acf4c286825036 

Więc po popełnione zmiany nadal uważa, że ​​ani zmiany były cherry- podniósł spodziewałem:

- 153c2f840f2192382be1fc435ceb069f0814d7ff 
+ 4a7979d5dd526245b51769db21acf4c286825036 

Jak mam wiedzieć tydzień od teraz, kiedy już połączyły 153c2f? W jaki sposób mogę przeprowadzić zbiórkę wiórów w taki sposób, aby wiedział o tym scaleniu?

Odpowiedz

3

Jak się dowiesz?

Nie używając git cherry ponieważ rozpoznaje tylko rewizje, które mają taką samą git patch-id (see man page), to nie te, w których trzeba było rozwiązać nietrywialne konfliktów.

Musisz wiedzieć, patrząc na komunikat zatwierdzenia.

W jaki sposób przyszłe fuzje będą wiedzieć o wyborze wiśni?

Ponieważ rozwiązałeś konflikt po zastosowaniu wybranej przez siebie zmiany, to zatwierdzenie powinno się fuzji trywialnej, gdy połączysz cały oddział w przyszłości.

Jeśli jesteś naprawdę zaniepokojony git pamiętając, jak rozwiązać ten konflikt, można włączyć git rerere:

git config --global rerere.enabled true