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