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.
Etapy CD
Etapy CD:
Automatyczne Wdrażanie: Po pomyślnym przejściu testów, system CD automatycznie wdraża zmiany w odpowiednim środowisku.
Monitoring i Feedback: Środowisko produkcyjne jest ciągle monitorowane, a wszelkie problemy są szybko identyfikowane i zgłaszane.
Rollback: W przypadku wykrycia problemów, system może automatycznie przywrócić wcześniejszą wersję aplikacji.
Korzyści z CI/CD:
Szybsze Dostarczanie: Krótszy czas od wprowadzenia zmiany do jej dostępności na produkcji.
Lepsza Jakość Kodu: Regularne testowanie i integracja przyczyniają się do wykrywania i naprawiania błędów wcześniej.
Większa Elastyczność: Możliwość szybkiego reagowania na zmieniające się wymagania i warunki rynkowe.
**Zredukowane Ryzyko: **Małe, regularne zmiany są mniej ryzykowne niż duże, sporadyczne aktualizacje.