Czy skończyłeś z pustym zatwierdzeniem scalenia (dwóch rodziców) lub po prostu pustym zatwierdzeniem? W tym ostatnim przypadku mogłeś usunąć .git/MERGE_HEAD
.
Aktualizacja: Zamiast usuwać MERGE_HEAD
ręcznie, można również użyć git merge --abort
(as of git 1.7.4) lub git reset --merge
(as of git 1.6.2). Warto również wspomnieć, że co najmniej od wersji 1.8.3 (może wcześniej?) Powinieneś zobaczyć taką wiadomość, jeśli faktyczne scalanie jest w toku i musi zostać zatwierdzone (jeśli podałeś --no-commit
, na przykład):
# On branch master
# All conflicts fixed but you are still merging.
# (use "git commit" to conclude merge)
#
nothing to commit, working directory clean
Jeśli nie widzisz tego i nadal uzyskać MERGE_HEAD
ostrzeżenie, coś jest pomieszane i należy prawdopodobnie tylko --abort
wrócić do pierwotnego stanu.
dodatkowe Szczegół Komentarze
Podczas scalania git tworzy plik MERGE_HEAD w korzeniu .git folderu (obok głowy, ORIG_HEAD, prawdopodobnie FETCH_HEAD, etc) do śledzenia informacji o scaleniu w postęp (w szczególności SHA (s) commit (ów) włączonych do bieżącego HEAD). Jeśli to usuniesz, Git nie będzie już myślał, że trwa scalanie. Oczywiście, jeśli rzeczywiście trwa scalanie, nie będziesz chciał usunąć tego pliku.
thaaaank youuuuuuuuu! – koenmetsu
Dla mnie to pokazało się jako commit oznaczający punkt połączenia, więc komunikat taki jak "Scalanie dev do master" byłby bardziej odpowiedni niż "Test". –
Wow. Teraz każdy może wyjaśnić, dlaczego to działa, ale 'git commit' nie? – user1205577