Jaki jest właściwy sposób na cofnięcie zmiany nazwy w git, na przykład:
git mv file1 file2
Jaki jest właściwy sposób na cofnięcie zmiany nazwy w git, na przykład:
git mv file1 file2
Odpowiedzi:
Bezczelna odpowiedź:
git mv file2 file1
Automatycznie aktualizuje indeks starych i nowych ścieżek.
Sprawdź dokumentację git mv
git checkout .
nie działa, nawet z -f
opcją?
git checkout -- .
.
fatal: source directory is empty,
tylko git reset --hard
wykonałem pracę.
Jeśli nie dokonałeś żadnych innych zmian (które chcesz zachować) od ostatniego zatwierdzenia, możesz to zrobić
git reset --hard
git reset --hard
. Samo przesunięcie go do tyłu wydaje mi się bezpieczniejszą opcją.
W moim przypadku przeniosłem cały folder, a potem zdałem sobie sprawę, że nie powinienem.
Bardzo podobała mi się odpowiedź @Dave Konopka, ale nie odniosłem większego sukcesu z takim podejściem (może moja wersja GIT (1.8.4)? Moje pliki nadal były wyświetlane jako usunięte. Miałem inne zmiany na stosie, których nie chciałem stracić (niestety).
Udało mi się to zrobić:
git reset moved_folder
git checkout original_folder
To zależy od tego, co chcesz osiągnąć. Jeśli chcesz, aby wyglądał tak, jakby plik nigdy nie był przenoszony, możesz zresetować (lub zmienić bazę) z powrotem do stanu sprzed przeniesienia. Jeśli nie obchodzi cię historia, po prostu cofnij ją.
Jeśli przypadkowo zmieniłeś nazwę dużej liczby plików i chcesz wrócić do początku, usuń wszystkie pliki o zmienionych nazwach, które są wyświetlane jako adds
pod git status
połączeniem.
Po usunięciu wszystkich zmienionych plików możesz uruchomić git checkout -- *
lokalnie, aby przywrócić oryginalne nazwy plików.
git reset HEAD file2
git checkout -- file1
rm file2
Pierwsze polecenie usuwa ze sceny plik2, ale pozostawia jego kopię. Drugie polecenie przywraca oryginalny plik, a trzecie usuwa nowy plik.
Sztuczka, której użyłem, polegała na zrobieniu skrytki git, aby cofnąć wszystkie moje zmiany (w tym przywrócenie plików mv'd), a następnie usunąłem skrytkę za pomocą git stash drop.
git mv file2 file1