#1117 – git i github w skrócie

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 main
git 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 .gitignore
obrazki/
Teraz, potwierdzamy zmiany:
git commit -m "pierwsza wersja"
aby zobaczyć jakie były komity wcześniej:
git log
dodanie gałęzi
git branch poprawki
wylistowanie wszystkich gałęzi, oznaczona * jest aktualnie używana
git 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.txt
touch plik poprawki.txt
dodaję do stage
git add --all
commituję zmiany w branchu
git 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 chcemy
git 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:
stage
git add kolejny_plik.txt
commicik
git 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 niej
git checkout -b nowa_galaz
edytujemy README.md
sprawdzamy status
git status
dodać do stage
git add README.md
git commit -m "zmiany w README.md"

wrzucenie na serwer
git 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.

#1116 – Prima Aprilis czyli Dzień Śmiechały

Uważaj, dzisiaj 1 kwietnia – Dzień Głupców, którzy dali się nabrać. Zatem życzę sobie i tym, którzy czują się choć trochę oszukani przez życie – Wszystkiego najlepszego i pogody Wiekiego Ducha. Bądźmy czujni każdego dnia!

Ciekawe jak to jest, że aż trzeba specjalnego dnia, w którym można wciskać kity i nie ponosić większych konsekwencji z powodu gadania i robienia ludzi w konia. Wszak niektórzy znaleźli sposób by można to było robić codziennie. Zarówno tam wysoko, jak i tu pośród maluczkich. Prawda Tajemnicy Poliszynela w oczy kole i ma się zupełnie dobrze. Przykładów można podawać wiele, ale dzisiaj na to nie pora, bo i tak nikt w to nie uwierzy.