→ Slide 1

Systemy kontroli wersji Git i GitHub

→ Slide 2
  • repozytorium kodu (i nie tylko) z historią zmian
  • mechanizmy współdzielenia pracy członków zespołu, synchronizacja zmian
  • śledzenie zmian w kodzie, porównywanie różnic w wersjach kodu, patche
  • rozwój kolejnych wersji i gałęzi oprogramowania oraz mechanizmy łączenia ich
  • historia rozwoju, dokumentacja zmian w kolejnych wersjach
  • kopie bezpieczeństwa - możliwość wycofania zmian, powrotu do poprzedniego stanu
→ Slide 3
  • zdecentralizowany, każdy użytkownik posiada pełną kopię repozytorium
  • można pracować lokalnie
  • większość operacji wykonywana lokalnie (szybszy w działaniu od scentralizowanych)
  • wygodny mechanizm tworzenia gałęzi
  • elastyczny, możliwość wdrożenia różnych workflow (procesów wytwórczych)
  • usługi udostępniające repozytoria git: GitHub, Azure DevOps, GitLab, BitBucket
→ Slide 4

Źródło: http://git-scm.com

Każdy węzeł przechowuje całą historię repozytorium.

→ Slide 5
  • master (lub main) - gałąź główna
  • branches - odgałęzienia, wersje rozwojowe
  • tags - wersja zamrożona (np. v.1.0), etykieta

→ Slide 6
  • git - repozytoria lokalne i zdalne
    • automatyczne tworzenie repozytorium dla nowych projektów w Visual Studio
    • istniejący projekt można umieścic w repozytorium
  • integracja z GitHub (lub innymi np. Azure DevOps)
    • repozytorium można utworzyć na stronie usługi
    • istniejące repozytorium (zdalne, lokalne) można sklonować
    • publikowanie zmian do GitHub
→ Slide 7

Wybieramy Add to Source Control z paska statusu

przed

po

→ Slide 8
  • WidokZmiany git

→ Slide 9
  • WidokRepozytorium Git

→ Slide 10
→ Slide 11
  • Dodaj (add): dodanie nowego pliku do śledzenia
  • Zatwierdź (commit): zatwierdzenie zmian, powstaje nowy węzeł w repozytorium (lokalnie)
  • Wypchnij (push): wypchnięcie zmian do zdalnego repozytorium
  • Ściągnij (pull): pobranie zmian i scalenie z lokalną kopią
  • tworzenie i scalanie gałęzi (merge)
  • cofanie zmian (revert), przywracanie poprzednich stanów (reset)
  • przeglądanie i porównywanie zmian w kodzie
→ Slide 12
  • okno Zmiany git zawiera listę wykrytych zmian
  • Zatwierdź wszystko (commit) - zatwierdzenie zmian
  • zmiany muszą być opatrzone opisem

→ Slide 13
  • historia zmian - każda zatwierdzona zmiana tworzy węzeł w repozytorium


→ Slide 14

→ Slide 15
  • Cofnij zmiany (Undo changes) - wycofywanie niezatwierdzonych zmian
  • Przywróć (Revert) - cofanie zatwierdzonych zmian, nie zmienia historii ale tworzy nowy punkt w historii
  • Resetuj (Reset) - przywraca historyczną wersję repozytorium
↓ Slide 16

Ćwiczenia

  1. Dodaj rozwiązanie projektu (dowolnego) do repozytorium git
  2. Dokonaj przynajmniej jednej zmiany w kodzie i zatwierdź zmiany w repozytorium
  3. Obejrzyj zmiany w oknie historii
  4. Porównaj zmiany
→ Slide 17
  • gałęzie zawierają równolegle rozwijane wersje kodu, pomiędzy którymi możemy w prosty sposób się przełączać (checkout)
  • master domyślna nazwa głównej gałęzi

→ Slide 18
  • GitNowa gałąź

→ Slide 19
  • zaznacz gałąź docelową (master) → „Scal master z … ” - scalanie zmian z innej gałęzi do aktualnej gałęzi
→ Slide 20
→ Slide 21
  • Wypchnij (push) - wypchnięcie zmian
  • Pobierz (fetch) - pobieranie zmian (ale bez scalania)
  • Ściągnij (pull) - pobieranie zmian i scalenie z lokalną kopią
  • Sync - ściągnij a następnie wypchnij
→ Slide 22

Po wysłaniu zmian umieszczonych w osobnej gałęzi możemy poprosić członków zespołu o weryfikację kodu i dodanie do głównej gałęzi

VS 2022 GitHub
→ Slide 23

Źródło: https://www.atlassian.com/blog/bitbucket/5-pull-request-must-haves

  1. tworzymy nową gałąź (nowa funkcja, naprawa błędu, …)
  2. zmieniamy zawartość nowej gałęzi i zatwierdzamy zmiany (commit)
  3. gdy praca skończona wysyłamy gałąź do zdalnego repozytorium (push)
  4. składamy prośbę (pull request) o weryfikację kodu i integrację z główną gałęzią
  5. gdy zmiany zostaną przyjęte, wówczas aktualizujemy lokalną kopię ze zmianami, które mogli nanieść inni użytkownicy, rozwiązujemy konflikty
→ Slide 24

Źródło: http://nvie.com/

→ Slide 25

GitKlonuj repozytorium

VS 2022 GitHub
→ Slide 26
  1. Załóż konto w usłydze GitHub (jesli jeszcze nie posiadasz)
  2. Zaakceptuj zadanie, którego adres otrzymałeś pocztą. Adres zaproszenia znajduje się również na stronie Moodle tutaj
  3. Sklonuj rozwiązanie znajdujące się w repozytorium GitHub
  4. Wykonaj zadanie zgodnie z treścią. Treść zadania znajdziesz także w pliku README.md w repozytorium
  5. Wypchnij rozwiązanie zadania do repozytorium GitHub skojarzonego z tym zadaniem

Napisz program, który prosi o wprowadzenie linii tekstu a następnie wyrysowuje podany tekst w ramce wg. poniższego wzoru

Podaj tekst: Witaj Świecie

*****************
* Witaj Świecie *
*****************
→ Slide 27