2013-05-08 12 views
17

Pracowałem na oddziale X. Zrobiłem commit i pchnąłem to."Fatal: cherry-pick failed" z Git

Potem chciałem cherry-pick go do oddziału Y. Ale ze względu na pewne niezłączonych pliki przedstawić, mam następujący komunikat:

error: 'cherry-pick' is not possible because you have unmerged files. 
hint: Fix them up in the work tree, 
hint: and then use 'git add/rm <file>' as 
hint: appropriate to mark resolution and make a commit, 
hint: or use 'git commit -a'. 
fatal: cherry-pick failed 

Teraz po prostu chcę usunąć gałąź Y, a następnie ponownie utworzyć oddział Y a następnie chcesz ręcznie edytować plik, w którym byłem próbując wybrać cherry.

Obecnie nie mogę usunąć gałęzi, ponieważ jest to moja gałąź robocza. Nie mogę checkout żadnego innego oddziału. Otrzymuję następujący błąd podczas próby zmiany gałęzi.

mod/assign/locallib.php: needs merge 
error: you need to resolve your current index first 

po prostu trzeba usunąć gałąź Y, nie tracąc nic na oddział X.

EDIT # 1

edytowany plik mod/assign/locallib.php

On robi git status, otrzymuję:

# On branch MDL-38267_24 
# Unmerged paths: 
# (use "git add/rm <file>..." as appropriate to mark resolution) 
# 
# both modified:  mod/assign/locallib.php 
# 

Co plik Dodam w git add ..?

Odpowiedz

11

Skoro już edytowany plik konfliktu, wystarczy

git add mod/assign/locallib.php 

następnie

git cherry-pick --continue 
2

Podjęto próbę scalenia (przez git merge lub git pull) i pojawiły się pliki, które zawierają konflikty, które nie zostały rozwiązane. Jeśli wykonasz git status, najprawdopodobniej zobaczysz plik wymieniony jako "zmieniony przez oba". Musisz to zrobić, zanim zrobisz cokolwiek innego.

Wykonaj git mergetool i spowoduje wyświetlenie pojedynczych plików. Napraw plik, aby rozwiązać konflikty, a następnie powinieneś móc kontynuować.

+0

Proszę zobaczyć moje edycje zrobiłem na pytanie. Mam na myśli plik, który zmodyfikowałem i plik zwracany przez "status git" są takie same. Jak mam rozwiązać problem, który mam? – xan

+0

Musisz rozwiązać konflikt lub "git reset" pliku do stanu, w którym nie ma konfliktu. W zależności od tego, co zrobiłeś, który spowodował konflikt. – Schleis

Powiązane problemy