2012-07-24 19 views
19

Choć tytuł wydaje się podobny do poprzednich pytań, nie mogę znaleźć rozwiązania mojego prostym przypadku:Jak zrobić GIT ignorować moje zmiany

  • I popełnione do mojego oddziału „ABCD”: git commit -a .....
  • Następnie zdecydowałem się odwiedzić poprzednie zatwierdzenie, więc: git checkout 2387687326487
  • Tutaj dokonałem pewnych zmian, które były przeznaczone wyłącznie do celów testowych, i nie chcę ich przechowywać
  • Skończyłem, chcę wrócić do mojego ostatniego zatwierdzenia (ponownie: ignorowanie zmian, które wprowadziłem do starego zatwierdzenia): przecinek nd git checkout 'ABCD' daje błąd:

Your local changes to the following files will be overwritten by checkout....please commit or stash...

, a ja nie chcę popełnić albo schować lub cokolwiek. Po prostu chcę wrócić do domu :) co mam zrobić?

+0

Przez ignorowanie wydaje się, że masz na myśli "ciche odrzucanie przy zmianie kas lub oddziałów". Czy poprawnie czytam twoje pytanie?Ignore ma dla mnie bardziej wyspecjalizowany sens w świecie sterowania źródłami; w szczególności: "wykluczyć zignorowane pliki z tego (i/lub przyszłego) zatwierdzenia." –

Odpowiedz

21

Jeżeli jesteś pewien, że nie chcesz, aby zachować zmiany, następujący wiersz zrobi:

git checkout -f 'ABCD' 

opcja „-f” oznacza życie.

9

Aby cofnąć lokalne zmiany i wrócić do stanu z popełnić można:

git reset --hard 
40

Korzystanie właśnie

git checkout . 

anuluje wszelkie niezatwierdzone zmiany w bieżącym katalogu (kropka oznacza prąd informator).

EDIT w odpowiedzi na @GokulNK:

Jeśli chcesz zachować te zmiany dla przyszłego wykorzystania, masz 2 opcje:

  • git stash: będzie zapisać te zmiany w stosie. Możesz później wprowadzić zmiany do kopii roboczej, używając git stash pop
  • git diff > changes.patch: Spowoduje to zapisanie zmian w pliku changes.patch. Jeśli chcesz zastosować je do swojej kopii roboczej, możesz to zrobić: git apply changes.patch.
+0

Prostsza opcja! Dzięki – Dinaiz

+0

Czy istnieje sposób, aby zapisać zmiany w pliku przed wykonaniem zamówienia git. –

+0

@GokulNK zobacz edycję –

7

Oprócz wymienionych rozwiązań można schować wprowadzone zmiany

git stash 

Kasa swój oddział

git checkout 'ABCD' 

i ostatecznie, po upewnieniu się, że nie trzeba nic z ukryty zmiany i dwa razy sprawdzane z gitk lub gitg, wyrzuć ukryte:

git stash drop 

To jest mój ulubiony sposób, ponieważ jest bezpieczniejszy.

+0

Tak też robię, bezpieczna droga – triswill227

Powiązane problemy