Professional Documents
Culture Documents
Üdvözlünk
Üdv a "Tanuld meg az alap Git-munkamenetet" című modulunkban.
mi is az a Git és a GitHub,
hogyan kell GitHub-profilt létrehozni,
mi az a repository, és hogyan lehet létrehozni,
hogyan férhetsz hozzá a GitHubon tárolt munkáidhoz a saját gépedről,
hogyan követheted a változásokat a kódodban, és tudhatod biztonságban
az egyes verzióit,
hogyan tudsz másokkal együtt dolgozni ugyanazon a kódon,
mi is az a parancssor, és hogyan használhatod mindenféle Git-
varázslathoz.
Mi is a Git?
Azt hiszem, nem kell sokat magyarázni, hogy ez miért nagyon hasznos. Hála a
Gitnek, nyugodtan dolgozhatsz a kódod helyi verzióján, abban a tudatban, hogy
a fő másolat biztonságban van a felhőben. Ezen felül hozzáférhetsz bármikor a
korábbi verziókhoz, ha valami rosszul sül el, van biztonsági mentésed, és ha
tudni akarod, hogy mikor mi változott, mindenről van feljegyzésed.
Mi is a Git?
Mi az a GitHub?
Dióhéjban
Ha Gitet és GitHubot használsz, soha nem kell attól félned, hogy elveszted a
kódod, vagy véletlen eltöröd a projekted mesterverzióját.
Macen a Terminalt,
Windowson a Powershellt.
Ez eddig szuper, de még azt is tudnunk kell, hogy milyen egyéb könyvtárak
(mappák) vannak ott, ahol vagyunk, hogy tudjuk, merre tudunk tovább menni.
Erre találták ki az ls (list, listázás) parancsot. Próbáld meg beírni a CLI-odba,
majd nyomni egy Entert.
Oké, lépjünk tovább a komolyabb dolgok felé. Ahhoz, hogy elérd a fő Projektek
mappád, először vissza kell menned a kezdőpontra.
Lépj vissza abba a könyvtárba, ahonnan indultunk. Ehhez a cd .. parancsot
tudod használni, ami egy lépéssel mindig feljebb visz a fájlrendszerben. Ez
gyakorlatilag a "Vissza" gomb a CLI-ben.
dc
ls
cd
pwd
Ellenőrzöm a válaszom
3.1. GitHub-regisztráció
A távoli szerveren való tároláshoz elősorban szükséged lesz egy GitHub fiókra.
Ha már regisztráltál, akkor nyugodtan ugord át ezt a leckét, és folytasd a
következővel.
Feladat:
Mi lett a GitHub-felhasználóneved?
A megoldásod:
VargaSzilvia
A jobb felső sarokban a felhasználói képedre kattintva egy legördülő menü nyílik
meg. Itt válaszd ki a „Settings” menüpontot.
Az új oldalra érkezve egy kicsit lejjebb kell, hogy görgess addig a pontig, amíg
meg nem látod a „Developer settings” menüpontot a bal oldali oszlopban.
A token generálásához görgess az oldal aljára, itt találsz egy zöld „Generate
token” gombot. Kattints rá!
Windowson
1. Nyisd meg a Powershellt, írd be, hogy git --version, és nyomd meg az
Entert.
2. Ha telepítve van a Git, akkor a verziószámot fogod megkapni, ha nincs,
akkor egy hibaüzenetet.
3. Ebben az esetben a legegyszerűbb megoldás az, ha letöltöd a Git for
Windows csomagot.
4. Nyisd meg ezt az oldalt majd kattints a bejelölt linkre. Ez mindig a
legfrissebb verziót fogja letölteni.
Macen
1. Nyisd meg a Terminált, írd be, hogy git, és nyomd meg az Entert.
2. Ha van Git a gépeden, egy hosszú lista fog megjelenni a lehetséges
parancsokról. Ha nincs, akkor pedig egy hiba üzenet fog felugrani.
3. Nincs mást tenni, mint telepíteni kell a Gitet. Nyisd meg ezt az oldalt.
4. A linkre kattintva a letöltés automatikus elindul.
5. Menj végig a telepítési beállításokon.
6. Várd meg, míg a telepítő végez, és már készen is vagy.
7. A Terminálba próbáld meg újból beírni a git parancsot.
Állítsd be az e-mail-címed
Ennyi!
4.1. Bevezető
Most, hogy minden készen áll – regisztráltál GitHubra és a Gitet is telepítetted –
itt az ideje megismerned, hogyan fogunk ezekkel az eszközökkel dolgozni.
Vágjunk is bele!
Amikor már lesznek fent fájlok a repositorydban, egy ehhez hasonló oldalt fogsz
látni:
1-3: Ezeket egyelőre nyugodtan hagyd figyelmen kívül, csak később lesz
fontos.
4: Itt jelennek majd meg a mappáid és fájljaid.
5: Amennyiben a projektnek van már README fájlja, ennek a tartalma
automatikusan meg fog jelenni itt. Arra szokták használni, hogy némi
információt osszanak meg a projektről, hogy mások megtudhassák, miről
szól.
Feladat:
Másold ide a repositoryd linkjét.
A megoldásod:
https://github.com/VargaSzilvia/git-basic-project
4.3. Klónozd le
Ha eddig minden jól ment, akkor valami ilyesmit kell látnod a repositorydban:
Tipp: A linket Ctrl + V-vel (vagy Macen Cmd + V-vel) tudod beilleszteni.
Megjegyzés: A Git lehet, hogy kérni fogja a GitHub-jelszavad. Írd be, és nyomj
Entert.
Tipp: Meg is győződhetsz arról, hogy minden rendben ment, ha beírod a CLI-be
az ls parancsot. Az új mappának meg kell jelennie a listában.
Ha olyan repositoryt klónozol le, ami nem üres (általában ez a jellemző), akkor
az alábbi felülethez hasonló fogad majd:
Ellenőrzöm a válaszom
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-
scale=1">
<link rel="stylesheet" type="text/css" href="style.css">
<href="https://fonts.googleapis.com/css?family=Crimson+Text|
Julius+Sans+One" rel="stylesheet">
<title>Freedom</title>
</head>
<body>
<div class="wrapper">
<p class="quote">"The freedom of Mankind does not lie in the
fact that we can do what we want, but that we do not have to do that
which we do not want."</p>
<p class="author"><small>– Jean-Jacques Rousseau</small></p>
</div>
</body>
</html>
Gépeld be a parancssorba azt, hogy git status, és nyomj Entert. Egy ehhez
hasonló üzenetet kell visszakapnod:
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
nothing added to commit but untracked files present (use "git add"
to track)
Az első sor azt mondja neked, hogy a main (fő) ágon vagy. Ezt egyelőre
nyugodtan hagyd figyelmen kívül, majd később beszélünk a
leágazásokról.
A második sor azt jelenti, hogy még nem követtél el egy commitot sem.
Az „Untracked files:” (nem követett fájlok) rész megmutatja a helyi
változtatásaidat: létrehoztál egy fájlt. A Git azt is hozzáteszi, hogy ez a fájl
és a változtatásai még nincsen hozzáadva a commitodhoz.
o Ha itt az index.html fájlon kívül esetleg látsz más fájlokat is, az
azért lehet, mert az asztali kódszerkesztőd automatikusan
hozzáadta őket a projektedhez. Ezekkel a fájlokkal most nem kell
foglalkoznod.
Mielőtt hozzáadnánk a fájlt egy commithoz, jó, ha tudod, hogy a Git négy külön
szakaszban kezeli a fájljaidat:
A fájljaid most már a staging areában vannak. Itt az ideje becsomagolni őket egy
commitba.
Írd is be, hogy git push, majd nyomj egy Entert. A géped egy darabig dolgozni
fog, és végül ki fog írni valami ehhez hasonlót a parancssorba:
$ git push
Counting objects: 1, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (1/1), 612 B | 251.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To https://github.com/your-username/git-basics-project.git
commit-number-1..commit-number-2 main -> main
$
Ha ezt látod, gratulálunk! A változtatásaid feltöltődtek a távoli repositoryba, és
az oldalad új verziója biztonságban el lett ott tárolva.
git add
git commit -m "your-commit-message"
git push
git status
Ellenőrzöm a válaszom
Mindkét filozófiának van előnye és hátránya, követői és ellenzői. Döntsd el, hogy
neked melyik szimpatikusabb, és használd azt. Illetve sose felejtsd el
megkérdezni, hogy mi a szokás, ha új csapatba érkezel.
git add
git commit -m "your-commit-message"
git push
git status
git add
git commit
git push
Ez egy olyan szöveges fájl, amelynek tartalma mindig a fájlok alatt fog
megjelenni. Olyan hasznos információkat szoktak beleírni, mint például, hogy
miről szól a projekt, vagy összetettebb program esetén egy futtatáshoz
szükséges lépéseket. Egy szóval ez egy rendkívül hasznos dokumentum, amely
majdnemhogy nélkülözhetetlen minden projektnél.
Kanyarodjunk vissza oda, hogy szeretnénk készíteni egy README fájlt. Ezt
legegyszerűbben az „Add a README” gombra teheted meg.
Ha megvagy, akkor már láthatod is a fájlok alatt azt, hogy milyen címet írtál be
a README fájlba.
Commit letöltése
Írd is be, hogy git fetch, majd nyomj egy Entert. A géped egy darabig dolgozni
fog, és végül ki fog írni valami ehhez hasonlót a parancssorba:
git fetch
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/your-username/your-project
fa0d3d4..76f4063 main -> origin/main
Megjegyzés: A git fetch parancssal nem csak egyetlen commitot töltöttünk le,
hanem az összes változást amely a távoli repositoryban történt. Tehát ha több
commit esetén az összeset letöltené.
Most nyisd meg a projektet egy asztali szerkesztőben. Hoppá! A README fájl
sehol sincs a projektben. Akkor most hogy is működik ez a git fetch?
origin
A klónozás során a git rengeteg mindent beállított háttérben, többek között azt
is, hogy a projekt mappát honnan töltöttük le. Azaz a git tudja, hogy a
munkakönyvtárunk melyik GitHub projekthez kapcsolódik. Ennek a távoli
repositorynak adott is egy álnevet: origin. Ezt máris le is tudod ellenőrizni a CLI-
ben a git remote paranccsal.
git remote -v
origin https://github.com/your-username/your-project.git
(fetch)
origin https://github.com/your-username/your-project.git (push)
origin/main
git status
On branch main
Your branch is up-to-date with 'origin/main'.
Azt válaszolta nekünk a CLI, hogy a main ágon állunk, és hogy ez az ág
naprakész az origin/main ággal. Anélkül, hogy mélyen bele mennénk mit is
jelentenek a leágazások gitben annyit kell ebből tudni, hogy a távoli repositoryt
lekövethető az origin/main ággal.
git merge
Ennek a parancsnak nagyon fontos alapköve az, hogy tudja milyen ágon áll
jelenleg, hiszen ide fogja beépíteni a változásokat. A git status során már
láthattuk, hogy jelenleg a main ágon vagyunk. Ez tökéletes, hiszen ide
szeretnénk beolvasztani a változásokat. A git merge parancsnak szüksége van
egy extra paraméterre, amely megmondja neki hogy mely ágról építse be a
változásokat.
Úgy bizony!
Tulajdonképpen a git pull a git fetch és git merge paracsokat hajtja végre
egymás után. Próbáljuk is ki!
Nyisd meg újra GitHubon a projektedet, és adj meg egy rövid leírást a projektről
a README fájlban. Ezt legegyszerűbben úgy tudod megtenni, hogy a kis ceruza
ikonra kattintasz:
Most egy ismerős felület töltött be, hajtsd végre a változtatásokat, majd készítsd
el egy új commitot. Ha kész vagy akkor csapd fel a CLI-t, és írd be a git
pull parancsot.
git pull
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/your-username/your-project
76f4063..ef6e8a1 main -> origin/main
Updating 76f4063..ef6e8a1
Fast-forward
README.md | 2 ++
1 file changed, 2 insertions(+)
Hogy működik a git pull parancs?
A távoli repositoryból letölti a változtatásokat a munkakönyvtárba.
Ellenőrzöm a válaszom
git status
On branch main
Your branch is up-to-date with 'origin/main'.
A Git azt írja nekünk: On branch main
A Gitet képzeld el úgy, mint egy fát. A main branch lesz a fa törzse, ez
mindennek az alapja. Eddig ezen dolgoztunk, nem hagytuk el fa törzsét. De ez
nem a legjobb módszer, ha már többen dolgozunk együtt ugyanazon a
kódbázison. Könnyen megtörténhet, hogy ketten ugyanazt a kódsort akarjuk
szerkeszteni.
git status
On branch main
Your branch is up-to-date with 'origin/main'.
Bash
Copy
Minden okés, éppen a main branchen állunk. Ha létre szeretnénk hozni egy új
branchet, akkor a git branch parancsot fogjuk használni. Ez a parancs egy
paramétert vár, ami a branch neve lesz. Hozzunk létre egy style nevű branchet:
Bash
Copy
Megegyzés: Fontos, hogy a branch neve mindig kerüljön idézőjelek közé. Illetve
figyelj arra, hogy a név ne tartalmazzon szóközöket.
Ha minden jól ment, akkor nem fogsz látni semmit. A Git a háttérben létrehozta
az új branchet. Ha szeretnénk látni, milyen branchek vannak a helyi
repositoryban, akkor írjuk be a git branch parancsot, most paraméter nélkül:
git branch
main
style
Bash
Copy
Láthatod, hogy a main branch mellett ott van az újonnan
létrehozott style branch is. Ezt a branchet arra fogjuk használni, hogy
létrehozzuk a weboldalunk stílusát, mert egyelőre csak a HTML fájl létezik.
Egy fontos dolog! Amikor létrehoztuk a style branchet, akkor az a main branch
éppen aktuális állapotát vette alapul, azaz jelenleg a main és a style branchünk
megegyezik. Ha most valamit változtatnánk a main branchen, akkor az nem
lenne elérhető a style branchen..
Kirajzolja a brancheket.
Létrehoz egy branchet, ha paraméterként megadjuk neki a branch nevét.
Hibát kapunk.
Ellenőrzöm a válaszom
Írjuk be a CLI-be:
Bash
Copy
Ennyi az egész, mostantól a style branchen vagyunk és azon dolgozunk.
html,
body {
margin: 0;
padding: 0;
font-size: 100%;
line-height: 1.5;
}
body {
width: 100%;
height: 100vh;
background: url('assets/freedom.jpg') no-repeat center;
background-size: cover;
color: #333;
}
.wrapper {
padding-top: 4rem;
width: 90%;
margin: 0 auto;
text-align: center;
}
.quote {
font-family: 'Julius Sans One', sans-serif;
font-size: 2.5rem;
}
.author {
font-family: 'Crimson Text', serif;
font-size: 1.5rem;
font-style: italic;
}
CSS
Copy
Ha kész vagy, akkor készíts egy commitot a változtatásokról.
Tipp: Nyugodtan menj vissza a korábbi leckékhez, ha még nem vagy teljesen
magabiztos a Git parancsokkal és folyamatokkal.
Bash
Copy
Ha visszamész a kódszerkesztőbe, akkor láthatod, hogy már a css fájl ott van a
projektben. Gratulálok!
Ellenőrzöm a válaszom
A style branch elérte célját, ezért nyugodtan kitörölhetjük. Ebben ismét a git
branch parancsot fogjuk használni, egy másik paraméterrel. Ez a paraméter -
d lesz. Töröljük ki a style branchet:
git branch -d style
Deleted branch style (was 61a6e5c2c).
Bash
Copy
Ennyi az egész. Ha lefuttatod a git branch parancsot, akkor már csak
a main branchet fogja kiírni.
Megjegyzés: Figyelj arra, hogy éppen melyik branchen állsz a törléskor. A Git
nem fogja engedni, hogy töröld azt a branchet, ahol éppen állsz. Ebben az
esetben át kell váltanod egy másik branchre.
Előfordulhat, hogy egy hibát kapsz a branch törlésekor, például egy ilyen
üzenetet:
Bash
Copy
Ezt a hibát akkor írja ki a Git, ha olyan módosítás van a törölni kívánt branchen,
amely még nem lett beolvasztva. Ezzel próbál megvédeni a Git. Ugyanis ha
kitörlöd a branchet, akkor az ott elvégzett változtatások elvesznek. Ha biztos
vagy a törlésbe, akkor írd be a Git által felkínált git branch -D
style parancsot.
Ellenőrzöm a válaszom
Helyes válasz. Piros pont jár érte!
7.1. Hogyan dolgozzunk együtt GitHubon?
Tanuló programozóként, amíg egyedül haladsz az anyagok gyakorlásával,
könnyen tudod menedzselni a kódodat a Giten keresztül, hiszen csak te
változtatsz a saját projektjeid tartalmán. Amikor viszont egyre tapasztaltabbá
válsz, és elkezdesz összetettebb feladatokon dolgozni, nagyrészt másokkal
közösen teszed majd ezt, legyen szó akár munkáról, akár csak egy hobby
fejlesztésről.
Ebben a fejezetben azt fogjuk bemutatni, hogy ezt az ellenőrzést hogyan lehet a
Gitben végrehajtani. Lássunk is neki!
És akkor itt álljunk meg egy pillanatra. Ha mindent jól csináltál, az alábbi
üzenetet kaptad a CLI-ben:
$ git push
fatal: The current branch assets has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin assets
Bash
Copy
Ez azért történt, mert eddig csak a main branchet használtad a távoli
repositoryban, az assets branch egyelőre csak a helyi repositoryban létezik.
Írd be a git által felkínált parancsot: git push --set-upstream origin assets,
ez hozza létre ugyanis az új branchet a távoli repositoryban, ahova egyúttal
feltölti a változtatásokat.
Amikor ez az állapot fennáll, létre hozhatunk egy úgynevezett pull request nevű
folyamatot, amelyen keresztül ellenőrizhető a munkánk. Ebben a leckében egy
pull request elkészítésén megyünk végig a GitHub segítségével.
Mi az a pull request?
Egy olyan része a git munkafolyamatnak, amikor valaki megkér minket, hogy
a git pull paranccsal húzzuk le a változtatásokat a távoli repositoryból.
Egy olyan része a git munkafolyamatnak, amikor valaki megkér minket, hogy
küldjük el a változtatásokat a távoli repositoryba.
Egy olyan része a git munkafolyamatnak, amin keresztül valaki ellenőrizni
tudja a saját branchünkön végrehajtott változtatásokat, mielőtt azokat
beolvasztjuk az éles branchre.
Egy olyan része a git munkafolyamatnak, amin keresztül valaki ellenőrizni
tudja, hogy milyen változtatásokat olvasztottunk már be az éles branchre.
Ellenőrzöm a válaszom
Amikor elkészült egy pull request, akkor a GitHubon az alábbi felület fogad:
Ami nekünk innen fontos:
Megjegyzés: Egy pull requestet akkor zárjunk csak le, amikor a fejlesztéshez
kapcsolódó változtatásokkal végeztünk. Amíg ez nem történik meg, addig
commitokkal jelezzük a kisebb változtatásokat. Ha azt a visszajelzést kapjuk egy
ellenőrzés után, hogy még változtatni kell valamin, akkor tudunk még újabb
commitokat készíteni. Ezek pusholás után automatikusan megjelennek a pull
requestben. Mindig figyelj oda, hogy addig ne legyen lezárva egy pull
request, amíg az összes commitot át nem nézte valaki.
1. A „New pull request” (új pull request) gombbal tudsz új pull requesteket
létrehozni.
2. Ha vannak már nyitott, átnézésre váró pull requestek a repositoryban,
azokat ezen a részen találhatod meg. Mivel még nem hoztunk ilyet létre,
ez a terület jelenleg üres.
A branchek beállítása
1. Egy rövid ellenőrzés után a GitHub kiírja, hogy „Able to merge.” Ez annyit
jelent, hogy az assets branch változásait be tudjuk majd olvasztani
a main-be.
2. Alul megjelennek egymás alatt a commitok, és azok tartalmai, benne a
változtatásokkal. Jelenleg csak egy commitot pusholtunk fel a távoli
repositoryba, de ha lenne több, akkor itt találnád egymás alatt őket.
3. A pull request létrehozásához kattints a „Create pull request” gombra.
Utolsó lépésként egy olyan oldalra kerülsz, ahol megadhatsz még néhány
beállítást a pull requestnek:
1. Itt tudod elnevezni a pull requestet. Célszerű olyan nevet adni, amely
röviden és egyértelműen, pár szóban összefoglalja az elvégzett
változtatásokat.
2. Itt tudsz hosszabban írni arról, hogy miről szól az adott pull request.
Továbbá, ha valami speciális kérésed van a kód ellenőrzője felé, szintén itt
tudod ezt megfogalmazni számára.
Úgy bizony!
Ha valahol elakadtál volna, és nem sikerült befejezni az oldalad, akkor nézd meg
a mi példamegoldásunkat ebben a repositoryban, és használd fel a saját
munkádhoz.
Ehhez képest a GitHub Pages mágiának tűnik. Tényleg csak néhány kattintásba
kerül közzétenni a weboldaladat. Mutatom, hogyan:
Nyisd meg a repositoryd GitHubon (jelen esetben a git-basics-
project repositoryt).
Kattints a „Settings” (beállítások) fülre.
Az oldal újra fog töltődni, és a „GitHub Pages” szekció tetejénél meg fog jelenni
egy zöld sáv, benne egy üzenettel, miszerint a weboldalad publikálva lett a
megadott webcímen: Your site is published at https://your-username.github.io/repository-
name/, melyben a your-username a saját felhasználóneved, a repository-name pedig a
repositoryd neve.
Néhány figyelmeztetés
Feladat:
Másold ide a publikált oldalad linkjét.
A megoldásod:
https://vargaszilvia.github.io/git-basic-project/