2013-04-23 14 views
13

Jaki jest najszybszy sposób na cofnięcie zmian (wystawionych i niezaangażowanych) w Git?Jak szybko cofnąć zmiany etapowe i niezarządzane w git?

Oba pliki nie są rejestrowane.

$ git status -s 
M file1.txt # unstaged 
?? oops.txt # unstaged 

Jeden plik wystawiony, jeden plik niezarejestrowany.

$ git status -s 
M file1.txt # staged 
?? oops.txt # unstaged 

mogę add wszystko do indeksu, a następnie stashsave i drop.

$ git add . 
$ git stash save 
$ git stash drop 
$ git status 
nothing to commit, working directory clean 

Czy istnieje szybsza metoda?

Odpowiedz

23

Należy użyć dwóch poleceń: git reset --hard i git clean -fd. git reset --hard cofnie wszystkie zmiany etapowe i git reset -fd, zmiany nieoparte (pliki i katalogi). Możesz utworzyć alias, który wykona te dwie komendy. Do tego wystarczy dodać następujące wiersze w .gitconfig:

[alias] 
    undo = '!git reset --hard && git clean -fd' 
+2

Dodałem alias "cofnij =!" Reset git --hard && git clean -f "' – hIpPy

+2

ładne .. i jeśli zastanawiasz się, skąd pochodzi huk: http://stackoverflow.com/questions/10641451/ co-jest-znaczeniem-of-the-bang-lub-before-the-git-command – Calaf

+1

Ta odpowiedź używa niepoprawnej terminologii. 'git reset --hard' ** wyrzuca wszystkie zmiany, wystawiane w indeksie i nie są rejestrowane w drzewie roboczym **. 'git clean -fd' usuwa wszystkie pliki i katalogi **, które nie są śledzone **. Na przykład wszystko, co jest lokalnie zbudowane jak pliki '.o',' config.make' ze skryptu configure, twoje 'znaczniki' i tak dalej. – Kaz

5

Można użyć git clean

 
$ git status -s 
?? oops.txt 

$ git clean -f 
Removing oops.txt 

$ git status -s 

Więcej informacji:

Czyści drzewo pracę przez rekursywnie usuwanie plików, które nie są pod kontrolą wersji, począwszy od bieżącego katalogu.

+2

Muszę wykonać obie te czynności, chociaż 'git reset --hard' i' git clean -f'. – hIpPy

13
git reset HEAD 
git checkout . 

git reset HEAD będzie unstage wszystkie zmiany i `git checkout„. odrzuca wszystkie zmiany.

Powiązane problemy