Ściągawka Git pogrupowana według tego, co chcesz zrobić
Ściągawka Git
Ściągawka Git według zadań: komendy, cofanie zmian i npm | We.Inc
Ściągawka Git z wyszukiwarką, pogrupowana według zadań: start, zapis, gałęzie, scalanie, synchronizacja i wdrożenie, do tego przepisy na cofanie, gdy coś poszło nie tak, schemat tego, gdzie żyją zmiany, i popularne komendy npm.
Większość codziennej pracy z Git to sześć komend: git status, aby zobaczyć zmiany, git add, aby je przygotować, git commit -m, aby zapisać, git switch -c, aby utworzyć gałąź, git pull, aby pobrać aktualizacje, i git push, aby je udostępnić. Do cofania używaj git restore dla plików, git reset dla lokalnych commitów i git revert dla commitów już wypchniętych.
Cofanie w skrócie
Co cofnąć
Komenda
Zmiany w pliku
git restore file
Dodanie do staging
git restore --staged file
Ostatni commit, niewypchnięty
git reset --soft HEAD~1
Wypchnięty commit
git revert <commit>
Przeszukuj komendy poniżej, kopiuj dowolną linię jednym kliknięciem i korzystaj z przepisów, gdy coś pójdzie nie tak. Komendy używają git switch i git restore, czytelniejszych zamienników wielu zadań git checkout.
Wpisz w pole wyszukiwania słowo, takie jak undo, branch lub tag.
Skopiuj komendę i wstaw nazwę swojej gałęzi lub pliku.
Sprawdź na schemacie, między którymi obszarami komenda przenosi zmiany.
Uruchom git status przed i po każdej operacji, która przepisuje historię.
Commituj małymi porcjami i często; małe commity łatwo cofnąć i przejrzeć.
Nigdy nie resetuj ani nie wypychaj siłowo gałęzi, z której korzystają inni. Zamiast tego użyj revert.
Wybieraj --force-with-lease zamiast --force; odmówi, jeśli ktoś inny coś wypchnął.
Pisz komunikaty commitów jako opis tego, co robi zmiana: "Dodaj formularz rezerwacji", a nie "zmiany".
Trzymaj sekrety w plikach środowiskowych wpisanych do .gitignore od pierwszego commita.
Najczęściej zadawane pytania
Czym różni się git reset od git revert?
reset cofa gałąź, usuwając commity z jej historii; to w porządku dla pracy lokalnej. revert dodaje nowy commit, który odwraca stary, pozostawiając historię nienaruszoną, co jest bezpiecznym wyborem, gdy commit został już wypchnięty.
git switch czy git checkout?
Oba działają. Git 2.23 dodał git switch do zmiany gałęzi i git restore do przywracania plików, rozdzielając dwa zadania, które wcześniej wykonywał git checkout. Są czytelniejsze i trudniej ich użyć źle.
Co robi git fetch, czego nie robi git pull?
fetch pobiera nowe commity, ale niczego nie zmienia w Twojej gałęzi. pull uruchamia fetch, a potem scala te commity z bieżącą gałęzią lub wykonuje na nich rebase.
Jak odzyskać utracony commit?
Uruchom git reflog. Wyświetla każdą pozycję, w której był Twój HEAD, łącznie z commitami, na które nie wskazuje żadna gałąź. Znajdź ten, którego potrzebujesz, i uruchom git switch -c rescue <sha>.
npm install czy npm ci?
Używaj npm install podczas pracy nad kodem; może zaktualizować plik lock. Używaj npm ci w buildach i CI; usuwa node_modules i instaluje dokładnie to, co jest w pliku lock, a jeśli package.json i plik lock się nie zgadzają, kończy się błędem.
Gdzie żyją Twoje zmiany
Git ma na uwadze cztery miejsca: Twój folder roboczy, staging (nazywany też indeksem), Twoje lokalne repozytorium i repozytorium zdalne. add przenosi zmiany z folderu do staging, commit ze staging do repozytorium, push z Twojego repozytorium do zdalnego, a pull sprowadza z powrotem commity ze zdalnego repozytorium.
Od commita do działającej strony
Wiele hostingów wdraża stronę, gdy wypchniesz zmiany do gałęzi. Pracuj na gałęzi funkcji, wypchnij ją, aby dostać podgląd, i scal z main, aby opublikować. Oznaczaj wydania tagami, aby szybko wrócić do sprawdzonej wersji.
Poprawki krok po kroku
Commit trafił do main zamiast do gałęzi
Utwórz gałąź w miejscu, w którym jesteś (zachowa commity), a potem cofnij main tak, aby zgadzał się ze zdalnym. Rób to tylko przed wypchnięciem.
Rozwiązywanie konfliktu scalania
Git zatrzymuje się i oznacza kolidujące linie. Popraw każdy plik do wersji, którą chcesz, usuń znaczniki, a potem dodaj do staging i dokończ.
Przypadkowo wypchnięty sekret
Najpierw wymień klucz: po wypchnięciu załóż, że został skopiowany. Potem usuń go z kodu i historii, a plik dodaj do .gitignore.
Piszesz README do repozytorium? Skorzystaj ze
ściągawki Markdown
Folder roboczy
Staging
Repozytorium lokalne
Repozytorium zdalne (GitHub, GitLab)
Konfiguracja jednorazowa
Imię i nazwisko zapisywane w Twoich commitach
E-mail zapisywany w Twoich commitach
Nowe repozytoria zaczynają na main
git pull wykonuje rebase zamiast tworzyć commity scalające
Rozpoczęcie projektu
Zamień bieżący folder w repozytorium
Skopiuj zdalne repozytorium na swój komputer
Połącz lokalne repozytorium ze zdalnym
Wyświetl repozytoria zdalne i ich adresy URL
Zapisywanie pracy
Co się zmieniło, co jest w staging
Dodaj jeden plik do staging
Dodaj części plików do staging, fragment po fragmencie
Zatwierdź to, co jest w staging
Zmiany jeszcze niedodane do staging
Zmiany przygotowane do następnego commita
Zwięzła historia z narysowanymi gałęziami
Gałęzie i scalanie
Utwórz gałąź i przejdź na nią
Przejdź na istniejącą gałąź
Wyświetl lokalne gałęzie
Scal tamtą gałąź z bieżącą
Odtwórz bieżącą gałąź na szczycie main
Usuń scaloną gałąź (-D wymusza)
Skopiuj jeden commit na bieżącą gałąź
Synchronizacja i wdrożenie
Pobierz zdalne zmiany bez ruszania Twoich plików
Pobierz, a potem scal lub wykonaj rebase na bieżącej gałęzi
Wypchnij nową gałąź i zapamiętaj, dokąd trafia
Wypchnij bieżącą gałąź
Oznacz wydanie
Wypchnij ten tag (tagi domyślnie nie są wypychane)
Odkładanie pracy na później
Odłóż niezatwierdzone zmiany na bok
Zobacz, co jest odłożone
Przywróć ostatnio odłożone zmiany i usuń je z listy
Coś poszło nie tak: przepisy
Odrzuć niedodane do staging zmiany w pliku (nie da się tego cofnąć)
Usuń plik ze staging, ale zachowaj zmiany
Popraw komunikat ostatniego commita (lub dodaj do niego pliki ze staging) przed wypchnięciem
Cofnij ostatni commit, zachowując jego zmiany w staging
Usuń ostatni commit i jego zmiany (lokalnie, niewypchnięty)
Cofnij wypchnięty commit nowym commitem; bezpieczne na współdzielonych gałęziach
Znajdź commit utracony po reset lub rebase, a potem git switch -c rescue <sha>
Wycofaj się ze scalania z konfliktami
Wycofaj się z nieudanego rebase
Przypadkowy commit do main: przenieś pracę na gałąź, a potem zresetuj main
Nadpisz zdalną gałąź tylko wtedy, gdy nikt nic nie wypchnął od Twojego ostatniego fetch
Podejrzyj, a potem usuń nieśledzone pliki i foldery
Utwórz package.json z wartościami domyślnymi
Czysta instalacja dokładnie z pliku lock (używaj w CI)
Dodaj zależność
Dodaj zależność tylko deweloperską
Usuń zależność
Wyświetl pakiety z nowszymi wersjami
Zgłoś znane podatności
Pokaż, które wersje pakietu są zainstalowane i dlaczego
Najnowsza opublikowana wersja pakietu
Uruchom komendę pakietu bez instalowania go
Komenda
Co robi
Kopiuj
Gdzie żyją zmiany
git pull sprowadza z powrotem commity ze zdalnego repozytorium.