Repozytorium GIT- scenariusze warsztatowe Przygotowanie Zapoznaj się z wiadomościami z dokumentu System kontroli wersji GIT Utwórz katalog git-scen, a w nim twórz projekt(y) zgodnie z Listing 1. do Listing 7. Wykonaj warsztat tworząc przykładowe pliki i analizując zachowanie skryptów 1 inicjowanie lokalnego Repozytorium i jego konfiguracja #1 scenariusz - inicjowanie lokalnego Repozytorium i jego konfiguracja .. # .. oraz wykonanie pierwszego Commitu # przygotowanie środowiska Projektu mkdir -p /home/student/Dokumenty/git/proj-1 cd /home/student/Dokumenty/git/proj-1 echo '#!/usr/bin/env python3' > app.py echo 'Przykładowa aplikacja' > README.md ls -al # tworzenie repozytorium GIT git init git config user.name "Twoje Nazwisko i Imię" git config user.email "twoj@email.local" git config --list # to samo co wyżej: cat .git/config git status # przygotuj pliki do wysyłki (Commit) na Repo git add README.md git add app.py # to samo co wyżej (dodaj WSZYSTKO): git add * git status # opisanie zawartości Commitu (poprzednich poleceń git add) git commit -m "Repo init with Readme" git status # ustawienie i nazwanie głównej gałezi git branch -M main # wskazanie adresu URL lokalnego Repo git remote add local /home/gp/Dokumenty/git/proj-1/ # wysłanie/zatwierdzenie pierwszego Commitu git push -u local master git status 2 Commitowanie zmian (rozwoju) w kodzie programu #2 scenariusz - Commitowanie zmian (rozwoju) w kodzie programu # środowisko Projektu: cd /home/student/Dokumenty/git/proj-1 # pierwsze zmiany: echo 'print("Moja Aplikacja")' >> app.py echo 'Lista funkcjonalności:' >> README.md echo '* wyświetl powitanie' >> README.md git status # przygotuj pliki do wysyłki (Commit) na Repo git add * git status # opisanie zawartości Commitu (poprzednich poleceń git add) git commit -m "[add] 0.1 Print message" git status # wysłanie/zatwierdzenie kolejnego Commitu git push -u local master git status # drugie zmiany echo 'print("version: 0.2")' >> app.py echo '* wyświetl wersję' >> README.md echo '* dodać nagłówek Copyright z autorem' >> TODO.txt git status git add * git status # NIEchcemy pliku TODO.txt w Repo git restore --staged TODO.txt git status # opisanie zawartości Commitu (poprzednich poleceń git add) git commit -m "[mod] 0.2 Print version" git status # plik TODO.txt MA BYĆ nieśledzony # wysłanie/zatwierdzenie kolejnego Commitu git push -u local master git status 3 kontrola Repo: lista gałęzi oraz "wersji" Commitów #3 scenariusz - kontrola Repo: lista gałęzi oraz "wersji" Commitów # środowisko Projektu: cd /home/student/Dokumenty/git/proj-1 # aktualna gałąź prac git branch # lista wszystkich gałęzi Repo git branch -a # historia pełna LUB kompaktowa (1-linijkowa) git log git log --pretty=oneline 4 lista ignorowanych (dla Commitów) plików i katalogów #4 scenariusz - lista ignorowanych (dla Commitów) plików i katalogów # środowisko Projektu: cd /home/student/Dokumenty/git/proj-1 mkdir ./DOCS echo "opisy funkcji" > ./DOCS/opisy.txt mv TODO.txt ./DOCS echo 'print("Prawdziwy kod programu")' >> app.py git status # dodanie ignorowania plików i/lub katalogów # TYLKO dla lokalnego REPO cat .git/info/exclude echo 'DOCS/*' >> .git/info/exclude git status # dla każdego, kto sklonuje TO Repo (ustawienia ignorowania będą synchronizowane) echo 'DOCS/*' >> .gitignore git status echo '.gitignore' >> .gitignore git status # wyjątek dla ignorowanego katalogu, bo wskazany jego plik jednak nie był ignorowany echo '!DOCS/opis.txt' >> .git/info/exclude git status # zatwierdzanie zmian git add * git commit -m "[mod] 0.3 Code and Documenation" git status git push -u local master git status git log 5 przywracanie konkretnych wersji projektu #5 scenariusz - przywracanie konkretnych wersji projektu # środowisko Projektu: cd /home/student/Dokumenty/git/proj-1 # lista Commitów git log # UWAGA! przechowaj listę HASHy Commitów w innym miejscu niż Repo # pokaż różnicę pomiędzy Commitem B i jego porzednikiem git show [NUMER_HASH_COMMITU] # załaduj stan projektu z konkretnego Commita git checkout [NUMER_HASH_COMMITU] # powróć do najnowszej wersji projektu git log # brak wskazania Najnowszego commitu cat .git/logs/HEAD git log --all # wyszukaj HASH najnowszej wersji projektu git checkout [NUMER_HASH_COMMITU]