Przez pomyłkę dodałem pliki za pomocą polecenia „git add dir”. Nie uruchomiłem jeszcze „git commit”. Czy istnieje sposób na usunięcie tego katalogu i wszystkich zawartych w nim plików z zatwierdzenia?
Próbowałem git reset dir
, ale to nie zadziałało. Najwyraźniej git reset file
jest to sposób na jego cofnięcie. Ale mam tak wiele plików i tak mało czasu.
git reset <path>
aktualizuje indeks dla tej ścieżki, aby pasowałHEAD
(bieżący zatwierdzenie). Nie dotyka działającego drzewa.Odpowiedzi:
Aby usunąć katalog i wszystkie zawarte w nim elementy z indeksu,
Te
--cached
marki przełącznikówgit rm
działać na indeksie i nie dotykać kopię roboczą.-r
Przełącznik sprawia, że rekurencyjne.źródło
--cached
przełącznik. Niemniej jednak zredagowałem odpowiedź, aby stwierdzić, że ma ona zastosowanie tylko do indeksu.git reset HEAD folder
naprawiłem wszystko ... ale zanim to zrobisz, zróbgit status folder
i upewnij się, że napisał, że „usunął” wszystkie pliki w tym folderzeBędziesz chciał użyćgit rm --cached -r <dir>
. to polecenie usunie zawartość katalogu przemieszczanego z indeksu.jeśli katalog był już śledzony, musisz ręcznie znaleźć nowe i stare pliki i cofnąć je…Prawdopodobniegit reset <dir>
po tym uruchom ponownie , aby zresetować istniejące (i już śledzone) pliki w katalogu.Aktualizacja 2019:
Po prostu uruchom
git reset directory
, odrzuci wszystkie nowo dodane pliki.źródło
git reset <dir>
sam?git reset <dir>
to też zadziała. Odpowiedź pochodzi z 2011 roku, więc nie jestem pewien, czy zadziałało to już 8 lat temu. Zaktualizuję odpowiedź. Dzięki za podpowiedź!Użyj
find
ixargs
:źródło
Katalog sceniczny
Sceny wszystkie pliki i foldery, które przygotowałem:
Potwierdź, że katalog jest niestabilny
Aby potwierdzić usunięcie katalogu i jego zawartości ze środowiska pomostowego (tj. „Zmiany do zatwierdzenia”), uruchom poniższe polecenie:
lub
w celu potwierdzenia, że żaden z folderów lub plików wcześniej zainscenizowanych nie jest nadal przemieszczany.
źródło
Jednym prostym poleceniem, aby usunąć przemieszczony plik / folder, który nie został jeszcze zatwierdzony, jest -
git restore --staged <dir>
.źródło