Próbuję zmienić gałęzie w git, ale pojawia się ten komunikat o błędzie:
error: you need to resolve your current index first
Używam git pod xcode4
git status
# On branch DateCode
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: Whereami.xcodeproj/project.xcworkspace/xcuserdatauser.xcuserdatad/UserInterfaceState.xcuserstate
#
no changes added to commit (use "git add" and/or "git commit -a")
Frappuccinos-MacBook-Pro:whereami
git reset {{currentBranchName}}
togit checkout .
rozwiąże twój problemOdpowiedzi:
Spróbuj tego, jeśli nie chcesz żadnych połączeń wymienionych w statusie git:
Spowoduje to zresetowanie indeksu i zaktualizowanie plików w drzewie roboczym, które są różne od
<commit>
iHEAD
, ale zachowa te, które są różne w indeksie i drzewie roboczym (tj. Takie, które mają zmiany, które nie zostały dodane).Jeśli plik, który jest inny,
<commit>
a indeks ma niestabilne zmiany - resetowanie jest przerywane.Więcej na ten temat - https://www.techpurohit.com/list-some-useful-git-commands & Doc link - https://git-scm.com/docs/git-reset
źródło
Kończysz z
both modified
wynikiem,git status
jeśli wystąpiły konflikty wywołane przez scalanie. git nie pozwala ci zmienić gałęzi, dopóki nie rozwiążesz tych konfliktów. Jeśli edytujesz ten plik, powinieneś zobaczyć w nim kilka znaczników konfliktów - przewodnik dotyczący rozwiązywania tych konfliktów znajduje się w podręczniku git . (Ponieważ kernel.org jest obecnie niedostępny, możesz znaleźć ten przewodnik tutaj .)Alternatywnie, jeśli uważasz, że scalanie było błędem, możesz je cofnąć za pomocą:
git reset --merge
źródło
Jeśli nie dbasz o zmiany, które według gita są wyjątkowe, możesz wykonać wymuszone sprawdzenie.
git checkout -f {{insert your branch name here}}
źródło
git reset --merge
także niepowodzenie). Alecheckout -f
działało świetnie.Otrzymałem tę wiadomość podczas aktualizacji nowych plików z pilota i indeksu nie udało się. Próbowano naprawić indeks, ale nie udało się rozwiązać za pomocą Xcode 4.5, GitHub.app (103) i GitX.app (0.7.1). Więc zrobiłem to:
który działał w omijaniu indeksu git.
Dwa posty na blogu, które pomogły mi zrozumieć Git i Xcode to:
źródło
możesz zresetować swoją gałąź za pomocą HEAD
następnie pobierz gałęzie i usuń gałęzie, które nie są odległe od lokalnych,
źródło
Musisz zatwierdzić lub zniszczyć wszelkie niezapisane zmiany, zanim zmienisz gałąź.
Git nie pozwoli ci zmienić gałęzi, jeśli oznacza to, że niezapisane zmiany zostaną usunięte.
źródło
git status
wyjściowe wskazują, że nie chodzi tylko o zmiany w drzewie roboczym, które zostałyby utracone w wyniku zmiany gałęzi - wskazują one, że scalanie nie powiodło się i konflikty muszą zostać rozwiązane w indeksie.Ponieważ plik jest modyfikowany przez oba, musisz go dodać przez
Lub jeśli chcesz zignorować zmiany wprowadzone w ciągu roku, zrób to
Po tym wystarczy zmienić gałąź - to powinno załatwić sprawę.
źródło