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

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)

https://git-scm.com/

usługi udostępniające repozytoria git: GitHub, Azure DevOps, GitLab, BitBucket

http://git-scm.com

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

master (lub main) - gałąź główna

branches - odgałęzienia, wersje rozwojowe

tags - wersja zamrożona (np. v.1.0), etykieta

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

Wybieramy Add to Source Control z paska statusu

przed

po

Widok -> Zmiany git

Widok -> Repozytorium Git

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

okno Zmiany git zawiera listę wykrytych zmian

Zatwierdź wszystko (commit) - zatwierdzenie zmian

zmiany muszą być opatrzone opisem

historia zmian - każda zatwierdzona zmiana tworzy węzeł w repozytorium

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

Dodaj rozwiązanie projektu (dowolnego) do repozytorium git

Dokonaj przynajmniej jednej zmiany w kodzie i zatwierdź zmiany w repozytorium

Obejrzyj zmiany w oknie historii

Porównaj zmiany

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

Git -> Nowa gałąź

zaznacz gałąź docelową (master) -> „Scal master z ... ” - scalanie zmian z innej gałęzi do aktualnej gałęzi

https://github.com/

repozytoria publiczne i prywatne

zarządzanie projektem zespołowym: zgłoszenia Issue Tracker

komentarze do kodu

mechanizm żądania ściągnięcia (pull request) i rewizje kodu

integracja z wieloma narzędziami

Tworzenie konta usługi GitHub do użycia z programem Visual Studio

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

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

https://www.atlassian.com/blog/bitbucket/5-pull-request-must-haves

tworzymy nową gałąź (nowa funkcja, naprawa błędu, ...)

zmieniamy zawartość nowej gałęzi i zatwierdzamy zmiany (commit)

gdy praca skończona wysyłamy gałąź do zdalnego repozytorium (push)

składamy prośbę (pull request) o weryfikację kodu i integrację z główną gałęzią

gdy zmiany zostaną przyjęte, wówczas aktualizujemy lokalną kopię ze zmianami, które mogli nanieść inni użytkownicy, rozwiązujemy konflikty

http://nvie.com/

Git -> Klonuj repozytorium

VS 2022	GitHub

Załóż konto w usłydze GitHub (jesli jeszcze nie posiadasz)

Zaakceptuj zadanie, którego adres otrzymałeś pocztą. Adres zaproszenia znajduje się również na stronie Moodle tutaj

Sklonuj rozwiązanie znajdujące się w repozytorium GitHub

Wykonaj zadanie zgodnie z treścią. Treść zadania znajdziesz także w pliku README.md w repozytorium

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 *
*****************

git - fast version control

Git i GitLab w Visual Studio by Jacek Matulewski

Start with Git & GitHub in Visual Studio