1. témakör · Alapok és munkakörnyezet · 2. fejezet
Feltelepítjük a Git for Windows csomagot és a GitHub Desktopot,
majd elvégezzük azokat a beállításokat, amelyek nélkül a Git nem enged commitolni. Közben
megismerjük a git config parancsot és a beállítások három szintjét.
git --version.user.name és user.email értékét, valamint az ajánlott alapértelmezéseket.A tananyagban három programot használunk. Mindhárom ingyenes.
| Program | Mit tartalmaz? | Honnan? |
|---|---|---|
| Git for Windows CLI | Maga a Git (a git parancs), a Git Bash terminál,
a Git Credential Manager (a GitHub-bejelentkezés tárolója) és egy egyszerű grafikus felület, a Git GUI. |
git-scm.com |
| GitHub Desktop Desktop | Grafikus Git-kliens a GitHub készítőitől. Saját, beépített Gitet használ. | desktop.github.com |
| Visual Studio Code Desktop | Kódszerkesztő beépített Git-támogatással és terminállal. A Git szövegszerkesztőjének is ezt állítjuk be. | code.visualstudio.com |
A GitHub Desktop a saját, beépített Gitjét használja, amely a parancssorból nem
érhető el. Ha csak a GitHub Desktopot telepíted, a PowerShellben a git
parancs ismeretlen marad. A parancssorhoz mindenképpen kell a Git for Windows.
macOS-en a Git az Xcode parancssori eszközeivel érkezik (xcode-select --install),
Linuxon a csomagkezelőből telepíthető (pl. sudo apt install git). A GitHub
Desktop macOS-re is létezik. A tananyag Windowsra készült, de a git parancsok
mindenhol ugyanazok.
git-scm.com oldalt, és válaszd a Download for Windows
lehetőséget. A letöltött fájl neve valami ilyesmi lesz: Git-2.5x.y-64-bit.exe.C:\Program Files\Git mappába telepít, ezért
rendszergazdai jogot kér.Aki szereti a parancssort, a Windows beépített csomagkezelőjével, a winget-tel is telepítheti (ekkor minden lépésnél az alapértelmezés érvényes):
PS> winget install --id Git.Git -e --source winget
| Lépés (angolul) | Mit válassz? | Miért? |
|---|---|---|
| Choosing the default editor used by Git | Use Visual Studio Code as Git's default editor | Az alapértelmezett Vim-ben kezdőként könnyű „beragadni”. |
| Adjusting the name of the initial branch in new repositories | Override the default branch name… → main | Így az új repók fő ága main lesz, ahogy a GitHubon is. |
| Adjusting your PATH environment | Git from the command line and also from 3rd-party software (Recommended) | Így a git parancs a PowerShellből és a VS Code-ból is elérhető. |
| Choosing the SSH executable | Use bundled OpenSSH (alapértelmezés) | A Git a saját SSH-programját használja. |
| Choosing HTTPS transport backend | Use the OpenSSL library (alapértelmezés) | Ha a hálózat saját tanúsítványt használ (iskola, cég), a Windows Secure Channel a jobb választás. |
| Configuring the line ending conversions | Checkout Windows-style, commit Unix-style line endings | Windowson ez a helyes sorvégkezelés (lásd a 7. szakaszt). |
| Configuring the terminal emulator to use with Git Bash | Use MinTTY (alapértelmezés) | Kényelmesebb terminálablak a Git Bashhez. |
Choose the default behavior of git pull | Fast-forward or merge (alapértelmezés) | A legegyszerűbb, legbiztonságosabb viselkedés (18. fejezet). |
| Choose a credential helper | Git Credential Manager (alapértelmezés) | Ez tárolja biztonságosan a GitHub-bejelentkezést (16. fejezet). |
Kattints végig a Git telepítőjének fontos lépésein! Minden lépésnél válassz, és a program megmondja, jól döntöttél-e. A végén összesítést kapsz.
git --versionA telepítés után nyiss egy új terminált, és kérdezd le a Git verzióját. Ha kiírja,
a telepítés sikerült, és a git parancs elérhető:
PS C:\Users\anna> git --version git version 2.5x.y.windows.1
A pontos verziószám nálad más lehet. A Gitből néhány havonta jelenik meg új kiadás.
A git parancsot több terminálból is kiadhatod. Mindegyikben ugyanaz a Git fut:
| Terminál | Hogyan nyitom meg? | Megjegyzés |
|---|---|---|
| PowerShell | Start menü → „PowerShell”, vagy a Windows Terminal | A Windows alapértelmezett parancssora; a tananyag példái főleg ebben készülnek. |
| Git Bash | Start menü → „Git Bash”, vagy jobb klikk egy mappán → Open Git Bash here | Linux-szerű parancsok (ls, cd, touch); a Git for Windows része. |
| VS Code terminál | VS Code-ban Ctrl + ö, vagy Terminal → New Terminal | Kényelmes: a szerkesztő mellett, a projekt mappájában nyílik meg. |
A git help <parancs> (például git help config)
megnyitja a parancs teljes leírását a böngészőben. A git config -h rövid
összefoglalót ír ki a terminálba. A 3. fejezetben részletesebben is megnézzük a parancssor használatát.
A Git beállításait a git config paranccsal kérdezzük le és módosítjuk. Minden
beállítás egy kulcs–érték pár, például user.name = Kovács Anna.
A beállítások három szinten, három különböző fájlban lehetnek:
--global: ezt használjuk a legtöbbször. A saját felhasználói fiókodban
lévő összes repóra érvényes. Rendszergazdai jog nem kell hozzá.--local: egy repó mappájában kiadva csak arra az egy repóra vonatkozik.
Kapcsoló nélkül is ez az alapértelmezés. Akkor hasznos, ha egy projektben másik nevet vagy e-mail címet szeretnél.--system: a gép minden felhasználójára érvényes, módosításához
rendszergazdai jog kell. Ide írja a telepítő a saját választásait (pl. a sorvégkezelést).Döntsd el, melyik szinten érdemes megadni a beállítást!
Minden commit rögzíti a szerzőjét: a nevét és az e-mail címét. A Git ezeket a
user.name és user.email beállításból veszi.
Amíg ezeket nem adod meg, a Git nem enged commitolni. Ezért ez az első dolog, amit
egy új gépen beállítunk:
PS> git config --global user.name "Kovács Anna" PS> git config --global user.email "kovacs.anna@pelda.hu"
Ha kimarad a beállítás, az első commitnál ezt az üzenetet kapod:
PS> git commit -m "Első változat" Author identity unknown *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'diak@GEP07.(none)')
A Git itt pontosan megmondja, mit kell tenni: „Mondd meg, ki vagy!”, és felsorolja a két parancsot is.
PS> git config user.name Kovács Anna PS> git config --global --list user.name=Kovács Anna user.email=kovacs.anna@pelda.hu init.defaultbranch=main core.editor=code --wait
A git config-ban nincs user.password,
github.token vagy ssh.key beállítás. A név és az
e-mail csak címke a commiton, nem bejelentkezés. A GitHubra való belépést a
Git Credential Manager intézi, amikor először töltesz fel valamit (16. fejezet).
Töltsd ki az adataidat. Az oldal elkészíti a beírandó parancsokat, és megmutatja, mi
kerül a .gitconfig fájlba. A parancsokat a saját gépeden a
Másolás gombbal viheted át a terminálba.
Ha a telepítőben az ajánlottakat választottad, ezek már be vannak állítva. Egy másik gépen (vagy ha kihagytad) így adhatod meg őket:
# az új repók első ága main legyen (ne master) PS> git config --global init.defaultBranch main # a Git a VS Code-ot nyissa meg, ha szöveget kell szerkeszteni (pl. commitüzenetet) PS> git config --global core.editor "code --wait" # Windowson: sorvégek átalakítása (lásd a következő szakaszt) PS> git config --global core.autocrlf true
--wait kapcsoló azt jelenti, hogy a Git megvárja, amíg
bezárod a szerkesztőfület, és csak utána folytatja. Enélkül üres üzenetet kapna.init.defaultBranch nincs beállítva, a Git a régi
master nevet használja, és erre figyelmeztet is
(hint: Using 'master' as the name for the initial branch…).| Parancs | Mit csinál? |
|---|---|
git config --list | Az összes érvényes beállítás, minden szintről. |
git config --list --show-origin | Ugyanez, és mindegyik mellé kiírja, melyik fájlból jön. |
git config user.email | Egyetlen kulcs aktuális értéke. |
git config --global --edit | Megnyitja a globális beállítófájlt a szerkesztőben. |
git config --global --unset core.editor | Töröl egy beállítást. |
PS> git config --list --show-origin file:C:/Program Files/Git/etc/gitconfig core.autocrlf=true file:C:/Program Files/Git/etc/gitconfig credential.helper=manager file:C:/Users/anna/.gitconfig user.name=Kovács Anna file:C:/Users/anna/.gitconfig user.email=kovacs.anna@pelda.hu file:C:/Users/anna/.gitconfig init.defaultbranch=main
A globális fájl egyszerű szöveges fájl, Jegyzettömbbel is megnyitható. Így néz ki:
# C:\Users\anna\.gitconfig [user] name = Kovács Anna email = kovacs.anna@pelda.hu [init] defaultBranch = main [core] editor = code --wait
A kulcs első része (user) a szakasz neve szögletes zárójelben, a
második része (name) a szakaszon belüli sor.
Az újabb Git-verziók alparancsokat is ismernek: git config set,
git config get, git config list. A tananyagban a
klasszikus formát használjuk, mert az minden verzióban működik, és a leírások többsége is így írja.
Amikor Entert nyomsz egy szövegfájlban, láthatatlan sorvége-karakter kerül a fájlba. A Windows és a Unix-alapú rendszerek (Linux, macOS) ezt másképp jelölik:
Ha egy csapatban vegyesen használnak Windowst és macOS-t, és mindenki a saját sorvégeit menti, a
Git úgy látja, hogy minden sor megváltozott, pedig csak a láthatatlan karakter más. Ezt
előzi meg a core.autocrlf beállítás:
| Érték | Commitkor (a tárolóba) | Kicsekkoláskor (a munkamappába) | Kinek való? |
|---|---|---|---|
true | CRLF → LF | LF → CRLF | Windows (a telepítő ajánlása) |
input | CRLF → LF | nem alakít | macOS, Linux |
false | nem alakít | nem alakít | csak ha tudod, miért |
Az eredmény: a tárolóban mindig LF van, a Windowsos gépeden pedig CRLF, ahogy a Windowsos programok megszokták. Emiatt néha ilyen figyelmeztetést látsz, ami nem hiba:
warning: in the working copy of 'index.html', LF will be replaced by CRLF the next time Git touches it
Csapatmunkában a legbiztosabb, ha a repóba bekerül egy .gitattributes fájl
ezzel a sorral: * text=auto. Ekkor a sorvégkezelés mindenkinél egyforma lesz,
bárhogy is állította be a saját gépét.
desktop.github.com oldalról, és indítsd el. A telepítés
nem kérdez semmit, és rendszergazdai jog sem kell hozzá: a program a saját felhasználói
mappádba kerül. (winget-tel: winget install --id GitHub.GitHubDesktop -e)user.name és user.email:
a GitHub Desktop is a globális .gitconfig fájlba írja. Ha a parancssorból már
beállítottad, itt a te adataidat látod.Később a File → Options menüben (Ctrl + ,) módosíthatod a beállításokat. A legfontosabb fülek:
These preferences will edit your global Git config file.
| Fül | Mit állíts be? |
|---|---|
| Accounts | Bejelentkezés a GitHub-fiókodba (a 4. fejezet után). |
| Integrations | External editor: Visual Studio Code · Shell: PowerShell vagy Git Bash — így egy kattintással megnyithatod bennük a repót. |
| Git | Név, e-mail, az új repók fő ága (main). Ugyanaz, mint a git config --global. |
| Appearance | Világos vagy sötét téma. |
A parancssor és a GitHub Desktop ugyanazt a C:\Users\<név>\.gitconfig fájlt
olvassa és írja. Ha az egyikben módosítod a nevedet, a másikban is az új név jelenik meg.
Az iskolai gépteremben előfordulhat, hogy többen is ugyanazzal a Windows-felhasználóval dolgoztok.
Ilyenkor a --global beállítás a következő diáké is lesz, és a commitjai
a te neveddel jelennek meg. Két jó megoldás van:
git config --global --list), és ha kell, írd át a saját adataidra.--local):
PS C:\projektek\sajat> git config user.name "Kovács Anna" PS C:\projektek\sajat> git config user.email "kovacs.anna@pelda.hu"
Ha bejelentkeztél a GitHubra, a Git Credential Manager elmenti a belépésedet, és a következő diák a
te nevedben tölthet fel. Óra végén jelentkezz ki: GitHub Desktopban
File → Options → Accounts → Sign out, a böngészőben is jelentkezz ki. A Windows
Hitelesítőadat-kezelőjében (Credential Manager) töröld a git:https://github.com
bejegyzést. Ezt a 16. fejezetben részletesen is megnézzük.
Kattints a hibaüzenetre a magyarázatért és a megoldásért!
git : The term 'git' is not recognized as the name of a cmdlet…Jelentése: a PowerShell nem találja a git programot. Magyar
Windowson így szól: „A(z) git kifejezés nem parancsmag, függvény, parancsfájl vagy futtatható program neve.”
Megoldás: (1) Zárd be, és nyisd meg újra a terminált (a VS Code-ot is). A telepítés előtt megnyitott ablakok nem látják az új PATH-t. (2) Ha így sem megy, telepítsd újra a Gitet, és a PATH lépésnél a Recommended lehetőséget válaszd. (3) Ellenőrizd, hogy nem csak a GitHub Desktop van-e fent.
Author identity unknown *** Please tell me who you are.Jelentése: nincs beállítva a user.name és/vagy a user.email.
Megoldás: add ki a két git config --global user… parancsot (5. szakasz), majd ismételd meg a commitot.
Jelentése: a Git a Vim szerkesztőt nyitotta meg a commitüzenethez, mert nincs más szerkesztő beállítva.
Kilépés: nyomd meg az Esc billentyűt, írd be: :q!, majd Enter
(kilépés mentés nélkül). Ha menteni is szeretnél: Esc, :wq, Enter.
Megoldás tartósan: git config --global core.editor "code --wait"
'code' is not recognized… — a VS Code nem nyílik meg szerkesztőkéntJelentése: a code parancs nincs a PATH-ban.
Megoldás: telepítsd újra a VS Code-ot, és pipáld be az Add to PATH lehetőséget, vagy a VS Code-ban Ctrl + Shift + P → Shell Command: Install 'code' command in PATH. Utána nyiss új terminált.
warning: in the working copy of '…', LF will be replaced by CRLF…Jelentése: ez csak figyelmeztetés, nem hiba. A Git jelzi, hogy a core.autocrlf szerint át fogja alakítani a sorvégeket.
Teendő: nincs. Részletek a 7. szakaszban.
Jelentése: a user.email nem egyezik egyik, a GitHub-fiókodhoz tartozó e-mail címmel sem.
Megoldás: állítsd be a GitHub-fiókod e-mail címét (vagy a noreply címet, 4. fejezet). A már elkészült commitokon ez nem változtat, csak az újakon.
⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás — a saját gépeden vagy az iskolai gépen dolgozz.
Telepítsd a Git for Windows csomagot a táblázatban ajánlott beállításokkal, majd egy új PowerShell-ablakban kérdezd le a verziót! Írd le a pontos kimenetet.
Állítsd be globálisan a nevedet, az e-mail címedet, az init.defaultBranch és a
core.editor értékét! Ellenőrizd a git config --global --list paranccsal.
Telepítsd a GitHub Desktopot (a bejelentkezést hagyd ki)! A File → Options → Git fülön milyen név és e-mail cím látszik? Miért éppen az?
Futtasd a git config --list --show-origin parancsot! Melyik beállítás melyik
fájlból jön? Keress legalább egyet, amelyet nem te adtál meg. Honnan származik?
A GitHub Desktopban írd át a nevedet (pl. tegyél a végére egy pontot), majd a parancssorban kérdezd le a
user.name értékét! Mit tapasztalsz? Utána állítsd vissza parancssorból, és nézd meg újra a Desktopban.
Írj egy legfeljebb hatlépéses útmutatót a géptermi gépekhez: mit ellenőrizzen és állítson be egy diák az óra elején, és mit tegyen az óra végén, hogy más ne dolgozhasson a nevében!
Egy csapatban két diák Windowst, egy macOS-t használ. Melyik core.autocrlf értéket
javasolnád az egyes gépeken, és mit ad hozzá ehhez egy .gitattributes fájl
* text=auto sorral? Nézz utána a git help gitattributes leírásban!
Az egyválasztós kérdéseknél kattints a válaszra. A többválasztósaknál jelöld be az összes helyeset, majd nyomd meg az Ellenőrzés gombot.
| Fogalom | Jelentés |
|---|---|
| Git for Windows | a Git Windowsos telepítőcsomagja: git parancs + Git Bash + Git Credential Manager + Git GUI |
| Git Bash | Linux-szerű terminál Windowsra, a Git for Windows része |
| Git Credential Manager | a GitHub- (és más) bejelentkezéseket biztonságosan tároló segédprogram |
| GitHub Desktop | grafikus Git-kliens beépített Gittel; a parancssori gitet nem helyettesíti |
| PATH | a mappák listája, ahol a Windows a begépelt parancsokat keresi |
git config | a Git beállításainak lekérdezése és módosítása |
| --system · --global · --local | a beállítás szintje: a gép összes felhasználója · a saját felhasználód összes repója · csak az adott repó; a szűkebb az erősebb |
.gitconfig | a globális beállítások fájlja: C:\Users\<név>\.gitconfig |
user.name, user.email | a commitok szerzőjének neve és e-mail címe — commitolás előtt kötelező megadni |
core.editor | a szövegszerkesztő, amelyet a Git megnyit (pl. code --wait) |
init.defaultBranch | az új repók első ágának neve (ajánlott: main) |
| CRLF · LF | sorvége-jelölés: Windows (\r\n) · Linux/macOS (\n) |
core.autocrlf | a sorvégek automatikus átalakítása; Windowson true |
git-scm.com); a
GitHub Desktop kiegészíti, de nem helyettesíti.git --version egy új terminálban.git config --global user.name "…" és
git config --global user.email "…". Jelszót a config nem tárol.init.defaultBranch main, core.editor "code --wait",
Windowson core.autocrlf true.A következő fejezetben megtanulunk biztonságosan mozogni a parancssorban: mappák, útvonalak, fájlok.