git odwracanie zmian - ghdrako/doc_snipets GitHub Wiki

  • git checkout
  • git restore
  • git reset
  • git revert

git checkout

Cofnięcie zmian w pliku do ostatniego commita

git checkout -- nazwa_pliku

To polecenie:

  • usuwa wszystkie niezapisane zmiany w podanym pliku (czyli zmiany, które nie zostały dodane do stage'a ani zapisane w commicie),
  • przywraca plik do wersji z ostatniego commita (HEAD).

Cofnięcie zmian we wszystkich plikach do ostatniego commit-a

git checkout .

git restore

discard changes from file in working directory

git restore file

discard changes from all file in working directory - so lost files not added to git

git restore .

git reset

git reset odwraca zmiany poprzez przesunięcie referencji gałęzi wstecz w czasie do starszego commita. Można myśleć o tym jako "przepisywaniu historii"; "resetowanie" spowoduje cofnięcie gałęzi, tak jakby commit nigdy nie został dodany.

git reset HEAD~1 # biezacy branch bedzie wskazywal na poprzedni commit
git reset --hard HEAD^ 
# or
git reset --hard @{1} HEAD

git revert

Mimo że resetowanie działa świetnie w przypadku lokalnych gałęzi na twoim komputerze, jego metoda "przepisywania historii" nie działa dla gałęzi zdalnych, które są używane przez innych.

W celu odwrócenia zmian i podzielenia się nimi z innymi, musimy użyć git revert.

git revert HEAD  # dodaje commita w biezacej galezi ktory odwraca zmiany poprzedniego
# It also takes ranges. This will revert the last two commits:
git revert HEAD~2..HEAD
# range of co mit using hashes
git revert 0d1d7fc..a867b4a