# Segédlet ## 0. GitSCH Mutassátok meg neki a [GitSCH](https://git.sch.bme.hu/)-t. Némá', ez olyan mint a [GitLab](https://gitlab.com/)! ### Dolgok felfedezése Először kattintsanak a jobb felső sarokban a profiljukra, és nézzék meg miket látnak ott. <div style="text-align:center"><img src="guide/gyakorlat/img/1.png" alt="Jobb felső sarok izé" /></div> #### Profil Érdemes nekik megmutatnotok a saját profilotokon, hogy rákattintotok a felhasználónevetekre, és behozza, mennyire voltatok aktívak az elmúlt időben git szerint, személyes projekteket, etc... nekik ez nem biztos hogy annyira szép lesz, hiszen valószínűleg nem használták még. #### Státusz 0 perces művelet, de tök szórakoztató, állíttatsatok be velük státuszt. Mutassátok meg, hogy emojikat is be lehet állítani, etc... Legyenek kicsit vidámak tőle! #### Beállítások Az edit profile és a preferences-t is megmutathatjátok nekik, DE ne ezek beállításával húzzátok el az időtöket. Esetleg a témát beállíttathatjátok velük, az nem sok idő és nem fáj, cserébe kényelmes. ### SSH kulcs hozzáadása a profilhoz Ami fontos, legalábbis kényelmes, de nagyon, adjanak hozzá egy ssh-kulcsot a profiljukhoz. Ezt a `preferences/SSH Keys` alatt találják meg. Akinek nincs meg teljesen az SSH, és az SSH kulcs fogalma, azt irányítástok át a [linuxos előadás](http://home.sch.bme.hu/~mikewashere/linux/#/) ide [passzoló fejezetéhez](http://home.sch.bme.hu/~mikewashere/linux/#/m%C3%A1sodik%20vide%C3%B3#t%C3%A1voli-hozz%C3%A1f%C3%A9r%C3%A9s-ssh), illetve meséljétek el nekik röviden mi is ez, (hogyan működik) hogyan kell használni. Gites előadás [ide kapcsolódó része](http://home.sch.bme.hu/~blintmester/git/#/guide/remote/1_basics). ## 1. új repó Kérjetek meg valakit (NE TI LEGYETEK!), hogy hozzon létre egy új projektet. Ezen vezessétek végig a csapatot, jó lenne, ha screensharingel menne végig, a többiek is lássák. ### Lépések Ennek a lépései: - nagy kék gomb (new project) névvel - bal felső opció (create blank project) - töltsétek ki a field-eket - projekt név lehet bármit, lehet benne ékezet, szóköz, etc... - figyeljék meg, hogy `project slug` hogyan változik a beírt név hatására - mondjátok el, hogy a `project slug`-ot is módosíthatják még ilyenkor (később már asszem nem lehet, vagy naaaagyon fájdalmas) - meséljétek el a láthatóság fontosságát - private: nem látja más, csak te, meg akiket meghívsz, hogy lássák (ÍGY hozzák létre először, később majd fogjuk állítani!) - internal: sch domainen belül (akinek van hozzáférése a GitSCH-hoz) mindenki látja - public: mindenki látja, Özséb néni is Romániából - az `Initialize repository with a README`-t tanulják meg, hogy kényelmes nem bekapcsolni, ekkor a Git* segít a létrejött projek lokális bekonfigurálásában (egész hasznos, mi?) - hozzátok létre a projektet ### Tagok hozzáadása Ahhoz hogy más is hozzáférjen a repohoz, hozzá kell adni a többieket, hiszen private-ként hoztuk létre. Tegyük is meg, baloldalt a sávon a Members-re kattintva kapunk egy felületet, ahol ezt megtehetjük. Láthatjuk, hogy embereket, valamint csoportokat is hozzá tudunk adni. Ha valaki megkérdezi, mesélhettek a csoportokról is, vagy irányítsátok hozzám. Kérjétek meg a projekt tulajdonost, hogy vegyen fel Titeket és engem mint owner, hogy tudjunk segíteni ha szükség lenne rá, valamint a többieket, mint developer/maintainer, ezt már döntsék el ők maguk. A [role-ok](https://git.sch.bme.hu/help/user/permissions)ról itt olvashatnak, azért egész beszédes. ## 2. Klónozzás Klónozzák le a repót, ehhez segítséget nyújt a GitLab is, valamint itt van egy leírás: ``` git clone git@git.sch.bme.hu:blintmester/projektem.git cd projektem touch README.md git add README.md git commit -m "add README" git push -u origin master ``` Persze cseréljétek ki a dolgokat az aktuális projektre! ## 3. Pythonos webszerver Készítsetek el közösen egy basic pythonos webszervert. Segédletnek használhatjátok Lackó [pythonos segédletét](https://home.sch.bme.hu/~rlacko/python3/#/guide/10_exercise#2-%C3%ADrj%C3%A1tok-meg-a-saj%C3%A1t-hanyadikh%C3%A9tvan-apitokat). Persze ne lemásoljátok, hanem használjátok fel okosan! Itt egy mintamegoldás: ```python import flask app = flask.Flask(__name__) app.config["DEBUG"] = True @app.route('/', methods=['GET']) def home(): return """ <html> <head> <meta charset="utf-8" /> <title>Gites meme</title> </head> <body> <h1>Hello Git</h1> <p>Ez egy basic oldal</p> </body> </html> """ app.run() ``` Fontos, vagy venv-el, vagy lokálisan tegyék fel a flask-et, hogy tudják használni. Kipróbálni a `python3 git.py`-al tudják, megnézni az eredményt pedig a `http://localhost:5000/`. ## 4. branch-ek Hozzanak létre saját branch-eket. Ezt a [videó](https://youtu.be/gU0yjbZR8lY)ban és a [jegyzet ](https://home.sch.bme.hu/~blintmester/git)ben is olvashatják, hogy kell. ```shell-session $ git checkout -b <username vagy amit akartok> ``` ## 5. jogok megint Állítsák be, hogy a repo internal szinten elérhető legyen. ### Feladat Mindenki készítsen egy nagyon egyszerű html-t a saját branch-én, commitolják, és a legvégén merge-elhetitek. ## 6. Házi feladat ### Alap Kaptok egy [repo](https://git.sch.bme.hu/KSZKepzes/cicas-kepek)-t, azt el kell forkolni, és saját képet kell feltölteni. ### Expert Készítsetek pipeline-t a gyakorlat repo-jához, és csináljatok autodeploy-t a linux-os vm-etekre!