GIT Flashcards
Github flow
git init
nowe repozytorium Git w lokalnym katalogu
git fetch
pobrać aktualizacje z repozytorium zdalnego, nie łącząc ich z lokalnymi
git pull
zaktualizować lokalne repozytorium o zmiany z repozytorium zdalnego
git branch [nazwa_gałęzi]
utworzyć nową gałąź
git checkout [nazwa_gałęzi]
przełączyć się na inną gałąź
git merge [nazwa_gałęzi]
zmergować gałąź [nazwa_gałęzi] do aktualnej gałęzi?
git diff
wyświetlić różnice między zatwierdzonymi a niezatwierdzonymi zmianami
git log
zobaczyć historię commitów
git stash
tymczasowo zapisać zmiany bez commitowania.
Cherry-Pick
kopiowania pojedynczych commitów z jednej gałęzi do innej.
git rebase [nazwa_gałęzi]
Przenosi zmiany z bieżącej gałęzi na wskazaną gałąź.
Utrzymania Czystej Historii: Przeorganizowanie, usunięcie lub zmodyfikowanie serii commitów przed ich scaleniem z gałęzią główną.
Uniknięcie Konfliktów Merge: Poprzez zastosowanie zmian z gałęzi roboczej na aktualną wersję gałęzi głównej, rebase może pomóc uniknąć konfliktów scalania
git commit –amend
pozwala zmodyfikować ostatni commit bez tworzenia nowego.
Dodać Zapomniane Zmiany: Jeśli po wykonaniu commita zdasz sobie sprawę, że zapomniałeś dodać jakieś zmiany.
Zmienić Wiadomość Commita: Aby zmodyfikować wiadomość ostatniego commita bez wprowadzania żadnych zmian w kodzie.
Continuous Integration (CI)
polega na automatycznym testowaniu każdej zmiany dokonanej w kodzie źródłowym, zazwyczaj za każdym razem, gdy kod jest przesyłany (push) do repozytorium.
- Commit i Push: Deweloperzy regularnie commitują zmiany do repozytorium (np. GitHub, GitLab).
- Automatyczne Budowanie: Po każdym commitcie, system CI (np. Jenkins, Travis CI, GitLab CI) automatycznie uruchamia proces budowania, który może obejmować kompilację kodu źródłowego.
-
Automatyczne Testowanie: Po zbudowaniu aplikacji, system CI wykonuje zautomatyzowane testy (testy jednostkowe, integracyjne itp.) w celu zweryfikowania zmian.
4.raportowanie: Jeśli testy nie przejdą, zespół jest informowany o błędach. Jeśli testy się powiodą, zmiany są gotowe do dostarczenia.
- Continuous Delivery/Deployment (CD)
- zmiany są automatycznie przesyłane do środowiska testowego lub stagingowego, ale wdrażanie na produkcję wymaga ręcznego zatwierdzenia.
Continuous Deployment: - zmiany są automatycznie wdrażane zarówno w środowiskach testowych, jak i produkcyjnych, bez konieczności ręcznego zatwierdzenia.