Aby móc zmienić gałąź w Git, musiałem przygotować wszystkie zmodyfikowane pliki. Gdy to zrobię, mogę zmienić gałąź. Jednak teraz, jeśli zrobię git status
nie wykrywa zmian, ale jeśli to zrobię git diff HEAD^ HEAD
lub git diff HEAD^
zmiany są pokazane. Jak mogę się z tego zrezygnować? : S
Odpowiedzi:
2 dla odpowiedzi № 1Nie tylko zainscenizowałeś zmodyfikowane pliki, ale wygląda na to, że utworzyłeś także zatwierdzenie. HEAD^
odnosi się do zatwierdzenia, które jest pierwszym rodzicem HEAD
, i HEAD
jest bieżącym zatwierdzeniem, zwykle wierzchołkiem gałęzi. Więc git diff HEAD^ HEAD
pokazuje różnicę ostatniego zatwierdzenia. Jest to podobne do łatki wyświetlanej przez git show HEAD
. git diff HEAD^
pokazuje różnicę między twoim drzewem roboczym a drzewem, które odpowiada HEAD^
i powinno to być równoważne z git diff HEAD^ HEAD
jeśli nie dokonałeś żadnych modyfikacji w swoim drzewie roboczym od czasu ostatniego zatwierdzenia.
Jeśli chcesz wrócić i „anulować” swoje ostatnie zatwierdzenie, możesz użyć następującego polecenia:
git reset HEAD^
Spowoduje to zresetowanie bieżącej gałęzi do HEAD^
, bez modyfikowania działającego drzewa.