Dzisiaj, krótki poradnik, bardzo podstawowych pojęć i komend związanych z git i github.
git – program do zarządzania wersjami repozytoriów kodu
github – strona twórcy git, gdzie dodatkowo można korzystać z funkcji repozytorium na serwerze – przydatne przy pracy zespołów oraz implementacji kodu do zewnętrznych serwisów i dzielenia się nim
Pomoc opcji git:git command -help
git help --all
Ustawienie globalne dla gita – użytkownik i email adres, jeśli nie chcesz globalnie, usuń słowo –global:git config --global user.name "nazwa_uzytkownika"
git config --global user.email "mail@server.ussr"
stworz katalog i przejdź do niego (tu będziemy śledzić zmiany), następnie tworzymy w nim katalog, dla którego nie śledzimy zmian (bo np. trzymamy w nim obrazki, biblioteki inne pliki …):mkdir zabawa
cd zabawa
mkdir obrazki
inicjalizacja repozytorium git w katalogu (w katalogu zabawa):git init
domyślna nazwa repo to master
zmiana nazwy gałęzi na maingit branch -m main
W pliku README.md opisujemy po co jest to repozytorium, co zawiera itp.
Status repozytorium:git status
stwórzmy plik plik_01.txt, można wyedytować dowolnym edytorem, ale samo stworzenie:touch plik_01.txt
Dodanie pliku do śledzenia określane jest jako – stage
Staged files are files that are ready to be committed to the repository you are working on.git add plik_01.txt
lub aby dodać wszystko:git add -A lubgit add all
wyświetlenie plików w katalogu (wszystkie informacje) ls -la
Do pliku .gitignore wrzucamy informacje o plikach, na których nie są śledzone zmiany:
wyświetlenie zawartości pliku .gitignore:cat .gitignoreobrazki/
Teraz, potwierdzamy zmiany:git commit -m "pierwsza wersja"
aby zobaczyć jakie były komity wcześniej:git log
dodanie gałęzigit branch poprawki
wylistowanie wszystkich gałęzi, oznaczona * jest aktualnie używanagit branch
(*)main
poprawki
aby wyświetlić wszystkie gałęzie (lokalne i zdalne):git branch -a
tylko zdalne:git branch -r
przełączenie na gałąź poprawki:git checkout poprawki
Switched to branch 'poprawki’
dodaję pliki plik oraz poprawki.txttouch plik poprawki.txt
dodaję do stagegit add --all
commituję zmiany w branchugit commit -m "poprawki dodane i plik.txt"
Zasada jest taka, by w głównym branchu mieć aktualny i działający kod.
Zmiany nanosimy na branchach innych
aby zmergować (połączyć) branche:
przechodzimy na główny:git checkout main
mergujemy z którym chcemygit merge poprawki
jak nie potrzebujemy już gałęzi, to możemy ją usunąćgit branch -d poprawki
jeśli są konflikty, należy je poprawić, a następnie ponowić fazę stage i commit
można też stworzyć nową gałąź i do niej od razu przejść:git checkout -b nowa_galaz
Switched to a new branch 'nowa_galaz’
Github
teraz pora na zdalne repo – github!!!
Najpierw załóż se konto
A potem stwórz repozytorium
uwaga, teraz (2023-04-03) nie działa wrzucanie repo po https, a jedynie go ssh.
a by logować się po ssh do githuba, musisz wygenerować parę kluczy (ssh-keygen -t rsa): publiczny, do wrzucenia na github
i prywatny, który powinieneś chronić. Kluczy prywatny powinien mieć uprawnienia tylko do odczytu, inaczej ssh go nie będzie używał! O czym uprzejmie nie poinformuje 😉 . Klucz prywatny możesz przenosić między kompami, ale pamiętaj by go chronić przed niepowołanymi oczami, rączkami i nnymi osobnikami. Jest Twój i tylko Twój!
Jak już to masz, to jedziesz z koksem:git remote add origin git@github.com:kryt121/zabawa.git
ewentualnie można założyć repo, z linii komend:echo " zabawa" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:kryt121/zabawa.git
git push -u origin main
aby ściągnąć dane z serwera:git fetch origin
git status
git log origin/main
origin/ to są branche na serwerze
wyświetla różnice:git diff origin/master
mergowanie:git merge origin/main
git status
można fetch i merge połączyć i zrobić jedną komendą:git pull origin
teraz zrobimy zmiany lokalnie i wypchniemy na serwer
dodaliśmy plik koleny_plik.txt, wyedytowaliśmy go i:
stagegit add kolejny_plik.txt
commicikgit commit -a -m "dodalim plik kolejny_plik.txt"
git status
On branch main
Your branch is ahead of 'origin/main’ by 1 commit.
(use „git push” to publish your local commits)git push origin
wrzucamy nowa gałąź z lokalnego na serwer:
tworzymy galaz i przechodzimy do niejgit checkout -b nowa_galaz
edytujemy README.md
sprawdzamy statusgit status
dodać do stagegit add README.md
git commit -m "zmiany w README.md"
wrzucenie na serwergit push origin nowa_galaz
sprawdź, na koncie github, czy się pojawiło, tam też możesz wykonać pull request i merge
merge wymaga zatwierdzenia, ja to zrobiłem przez stronę www
lokalnie teraz ściągnąć możemy zmiany:git pull
Sklonowanie repozytorium ze zdalnego na lokalny dysk:
git clone git@github.com:kryt121/zabawa.git
póki co tyle do obycia się … cdn.
