6. témakör · Eszközök és haladó témák · 25. fejezet
A programozók többsége nem külön terminálban, hanem a fejlesztőkörnyezetében (IDE) használja a Gitet: egy kattintás a stage, egy a commit, egy a szinkron.
Ebben a fejezetben megismered a VS Code Source Control nézetét és a Visual Studio Git Changes ablakát. A jó hír: mindegyik gomb mögött
ugyanaz a git parancs fut, amit már ismersz — a VS Code meg is mutatja, melyik.
A VS Code és a Visual Studio nem saját verziókezelőt használ: a gépedre telepített Gitet hívja meg a háttérben (2. fejezet). Ebből három fontos dolog következik:
user.name, user.email): ami a terminálban működik, az az IDE-ben is, és fordítva. Keverheted is a kettőt.git add -A -- index.html).A VS Code integrált terminálja: Ctrl + ö (magyar billentyűzeten; angolon Ctrl + `). Amit a grafikus felület nem tud (pl. git reflog,
interaktív rebase), azt ott futtatod.
A bal oldali sáv elágazás ikonja (vagy Ctrl + Shift + G) nyitja meg a Source Control nézetet. Az ikonon lévő szám a változott fájlok száma.
| Elem | Mit csinál? | Git parancs |
|---|---|---|
| Message mező | ide írod a commitüzenetet (Ctrl + Enter = commit) | -m "…" |
| ✓ Commit gomb (▾: Commit & Push, Commit & Sync, Commit (Amend)) | commitol; a nyíllal feltöltést vagy amendet is kérhetsz | git commit (+ push / --amend) |
| Staged Changes | az indexbe tett (előkészített) fájlok | git diff --staged |
| Changes | a még nem előkészített változások és az új fájlok | git status |
| Merge Changes | ütköző fájlok egy merge közben | unmerged paths |
| + (Stage Changes) | előkészíti a fájlt; a csoport fejlécén: az összeset | git add |
| − (Unstage Changes) | kiveszi az indexből, a módosítás megmarad | git restore --staged |
| ↺ (Discard Changes) | eldobja a módosítást (megerősítést kér!) | git restore / új fájlnál törlés |
| … menü | Pull, Push, Fetch, Clone, Checkout to, Branch, Stash, Undo Last Commit… | a megfelelő parancsok |
Ha semmi nincs előkészítve, és megnyomod a Commit gombot, a VS Code megkérdezi: There are no staged changes to commit. Would you like to stage all your changes and commit them directly?
Az Always válasz bekapcsolja a git.enableSmartCommit beállítást: onnantól minden commit mindent beletesz. Kényelmes, de így könnyen
kerül be olyan fájl is, amit nem akartál. Kezdőként válaszd inkább a tudatos stage-elést.
| Jel | Jelentés | A git status megfelelője |
|---|---|---|
| U | Untracked — új, még nem követett fájl | Untracked files |
| A | Added — új fájl az indexben | new file |
| M | Modified — módosított | modified |
| D | Deleted — törölt | deleted |
| R | Renamed — átnevezett | renamed |
| ! | Conflict — ütközés | both modified |
.gitignore-ban lévők halványak.git add -p megfelelője.git log -- fájl); bármelyikre kattintva az akkori különbséget látod.git log --graph). Bővebb gráfhoz népszerű a Git Graph bővítmény.git blame, 28. fejezet).* jelzi, hogy van nem commitolt változás). Rákattintva: Create new branch…, Create new branch from…,
vagy váltás egy meglévő (akár távoli) ágra — git checkout -b / git checkout.git.autofetch).git pull, majd git push. Először megerősítést kér (git.confirmSync).git push -u origin <ág>.A Visual Studióban (C#, .NET fejlesztés) két ablak a fontos: a Git Changes (View → Git Changes, Ctrl + 0, Ctrl + G) a mindennapi munkához, és a Git Repository (View → Git Repository) az ágakhoz és a történethez.
| # | Rész | Mit tud? |
|---|---|---|
| 1 | ágválasztó | váltás, új ág (New Branch…), a Manage Branches a Git Repository ablakot nyitja |
| 2 | Fetch / Pull / Push / Sync | a szinkron parancsai; a nyilak mellett az incoming/outgoing commitok száma |
| 3 | üzenetmező | kötelező commitüzenet |
| 4 | Commit All ▾ | ha semmi nincs stage-elve, mindent commitol (Commit All); ha van, a gomb Commit Staged. A nyíllal: commit + push / sync, vagy Amend. |
| 5 | Staged Changes / Changes | a + jellel stage, a − jellel unstage; dupla kattintás: diff; jobb gomb: Undo Changes (restore) |
| 6 | további funkciók | stash-ek, kimenő/bejövő commitok, push után link a pull request létrehozásához |
Új projektnél a Git → Create Git Repository… egy lépésben készít helyi repót, .gitignore-t (Visual Studio sablonnal: bin/, obj/, .vs/)
és akár GitHub-repót is. A Git Repository ablak bal oldalán az ágak (helyi és remote), középen a kiválasztott ág története gráffal; egy commitra jobb gombbal
Revert, Reset, Cherry-pick, New Branch is választható.
| VS Code beállítás | Alapérték | Mit csinál? |
|---|---|---|
git.autofetch | true | időnként magától fetch-el, így az ↻ ↓ szám friss |
git.confirmSync | true | a Sync Changes előtt megerősítést kér |
git.enableSmartCommit | false | ha semmi nincs stage-elve, mindent commitol kérdés nélkül |
git.postCommitCommand | none | commit után magától push vagy sync |
git.pruneOnFetch | false | fetch-kor törli a GitHubon már nem létező ágak másolatait |
git.allowForcePush | false | engedélyezi a Push (Force) menüpontot (alapból --force-with-lease) |
git.defaultBranchName | main | az új repók alapértelmezett ága |
A beállításokat a Ctrl + , ablakban a „git” szóra keresve találod. A név és az e-mail nem itt van: azt a git config adja (2. fejezet).
A VS Code (vagy a Visual Studio) melyik gombja melyik git parancsot futtatja?
Az osztalyoldal projekt nyitva van a VS Code-ban. Dolgozz a grafikus felülettel: Explorer, Source Control, állapotsor. Alatta az integrált terminál,
ahol bármikor ellenőrizheted, mit látna a git status vagy a git log. A küldetések a terminál mellett vannak.
⭐ alap · ⭐⭐ haladó · ⭐⭐⭐ kihívás
Nyiss meg egy repót a VS Code-ban (File → Open Folder). Módosíts két fájlt, stage-eld csak az egyiket, és commitold. Nézd meg a terminálban: git status, git log --oneline.
Nyisd meg az Output panelt, válaszd a Git csatornát, és végezz el egy stage-et, egy commitot és egy szinkront. Írd ki, milyen git parancsokat futtatott a VS Code.
Módosíts egy fájlban két, egymástól távoli sort, és a diff nézetben csak az egyiket stage-eld (Stage Selected Ranges). Ellenőrizd a terminálban: git diff --staged.
Hozz létre az állapotsorból egy új ágat, commitolj rá, Publish Branch, majd a GitHub Pull Requests bővítménnyel nyiss belőle PR-t az editor elhagyása nélkül.
Egy C# konzolos projektet tegyél verziókezelés alá a Visual Studióban (Git → Create Git Repository…). Nézd meg a létrejött .gitignore-t: mely mappákat hagyja ki, és miért?
Idézz elő egy merge-ütközést (13. fejezet), és oldd fel egyszer a CodeLens-gombokkal, egyszer a Merge Editor háromoszlopos nézetében. Melyik tetszett jobban, és miért?
Készíts egy egyoldalas „fordítótáblát”: a GitHub Desktop, a VS Code és a Visual Studio ugyanazon műveletei (stage, commit, push, pull, új ág, váltás, amend, stash) hol érhetők el, és melyik git parancs áll mögöttük.
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 |
|---|---|
| IDE | integrált fejlesztőkörnyezet (pl. VS Code, Visual Studio): szerkesztő, futtatás, hibakeresés, verziókezelés egy helyen |
| Source Control nézet | a VS Code Git-felülete: Changes, Staged Changes, üzenetmező, Commit |
| Stage / Unstage / Discard | git add / git restore --staged / git restore |
| Sync Changes | git pull, majd git push egy kattintással |
| Publish Branch | új ág első feltöltése: git push -u origin <ág> |
| Output → Git | a VS Code által futtatott git parancsok naplója |
| smart commit | stage-elés nélküli commit esetén minden változás automatikus bevétele |
| Git Changes / Git Repository | a Visual Studio mindennapi Git-ablaka / ágak és történet |
| Timeline / Source Control Graph | egy fájl commitjai időrendben / a repó commitgráfja a VS Code-ban |
| Git Graph, GitLens | népszerű VS Code-bővítmények: részletes gráf / soronkénti blame és még sok más |
git status állapotai.A következő fejezetben a repódból weboldal lesz: jön a GitHub Pages.