50 parasta GIT-haastattelun kysymystä ja vastausta (2026)
Valmistaudutko GIT-haastatteluun? On aika tutustua olennaisiin kysymyksiin, jotka testaavat versionhallintaosaamistasi. GIT-haastattelukysymykset auttaa paljastamaan ongelmanratkaisun syvyyttä, yhteistyötapoja ja työnkulun hallinnan tehokkuutta.
Versiohallinnan ja yhteistyön ura tarjoaa valtavia mahdollisuuksia ammattilaisille, joilla on vahva tekninen kokemus ja toimialaosaaminen. Aloittelijoista kokeneisiin insinööreihin yleisten ja edistyneiden käsitteiden hallinta auttaa selviytymään haastavista kysymys- ja vastaustilaisuuksista. Kenttätyöskentely parantaa analyyttisiä taitoja, tiimityöskentelyä ja käytännön teknistä asiantuntemusta, joita esimiehet ja tiiminvetäjät arvostavat.
Yli 75 ammattilaisen, kuten teknisten johtajien, päälliköiden ja kehittäjien, näkemyksiin perustuva opas kokoaa yhteen eri toimialojen parhaat GIT-haastattelunäkökulmat varmistaen uskottavuuden, käytännönläheisyyden ja kattavan kattavuuden kaikille kokemustasoille.
50 parasta GIT-haastattelukysymystä ja vastausta
1) Mikä on Git ja miten se eroaa muista versionhallintajärjestelmistä?
Git on hajautettu versionhallintajärjestelmä, joka on suunniteltu seuraamaan lähdekoodin muutoksia ohjelmistokehityksen aikana. Toisin kuin keskitetyt järjestelmät, kuten SVN tai CVS, Git antaa jokaiselle kehittäjälle täyden kopion repositoriosta, mukaan lukien sen koko historia. Tämä hajautettu malli parantaa nopeutta, joustavuutta ja luotettavuutta.
Esimerkiksi: Kun kloonaat Git-arkiston, voit työskennellä offline-tilassa ja tehdä commitin paikallisesti, toisin kuin SVN:ssä, jossa jokaista committia varten tarvitaan internet-yhteys.
| Tekijä | mennä | SVN |
|---|---|---|
| Archirakenne | hajautettu | keskitetty |
| Nopeus | Nopeampi | hitaampi |
| Offline-työ | Tuetut | Ei tuettu |
| haarautuvan | Kevyt | Raskas ja hidas |
👉 Ilmainen PDF-lataus: GIT-haastattelukysymykset ja vastaukset
2) Selitä Git-työnkulku ja tiedoston elinkaari.
Git-tiedoston elinkaari kuvaa, miten tiedosto liikkuu eri tilojen läpi repositoriossa.
Git-tiedostot voivat olla jossakin neljästä ensisijaisesta tilasta: Seuraamaton, Muokattu, lavastettuja Sitoutunut.
- Ei seurattu: Äskettäin luotuja tiedostoja ei ole vielä lisätty Gitiin.
- Muokattu: Tiedostot, joita on muokattu viimeisimmän commitin jälkeen.
- Lavastettu: Tiedostot lisätty käyttämällä
git addja valmis sitoutumaan. - Sitoutunut: Tiedostot tallennetaan pysyvästi arkistoon sovelluksella
git commit.
Esimerkiksi: Kehittäjä luo uuden tiedoston → suorittaa git add → sitten commit-tiedosto. Tämä sarja päättää tiedoston elinkaaren seurannasta commit-tiedostoon.
3) Miten haarautuminen ja yhdistäminen toimivat Gitissä?
Haarautuminen mahdollistaa useiden kehittäjien työskennellä erillisten ominaisuuksien parissa samanaikaisesti vaikuttamatta pääkoodikantaan. Jokainen haara edustaa itsenäistä kehityslinjaa.
Yhdistäminen yhdistää muutokset yhdestä haarasta toiseen, tyypillisesti integroimalla ominaisuushaarat takaisin päähaaraan.
Esimerkiksi: Jos luot feature/login haara, työskentele sen parissa itsenäisesti ja yhdistä se sitten main, yhdistät uuden ominaisuutesi turvallisesti.
| Komento | Tarkoitus |
|---|---|
git branch feature |
Luo uuden haaran |
git checkout feature |
Vaihtaa haaraan |
git merge feature |
Yhdistyy päähaaran kanssa |
4) Mitä erilaisia Git-objekteja on olemassa?
Git tallentaa dataa objekteina sisäiseen tietokantaansa. Objekteja on neljää päätyyppiä:
- blobs: Tallentaa tiedostotiedot.
- Puu: Edustaa hakemistoja ja tiedostorakenteita.
- Tehdä: Tallentaa muutokset metatiedoilla, kuten tekijä, päivämäärä ja päämuuttujan commit.
- Tag: Merkitsee tiettyä historiallista hetkeä, käytetään usein julkaisuissa.
Nämä objektit luovat Gitin eheyden ja muuttumattomuuden varmistaen, että jokainen commit on yksilöllisesti tunnistettavissa SHA-1-hajautuksen avulla.
5) Mitä eroa on Git fetchillä ja Git pullilla?
git fetch lataa muutokset etätietovarastosta, mutta ei yhdistä niitä automaattisesti. Se päivittää paikalliset etäseurantahaarat.
git pull suorittaa sekä noutamisen että yhdistämisen yhdessä vaiheessa.
| Komento | Tuotetiedot | Käytä asiaa |
|---|---|---|
git fetch |
Lataa muutokset yhdistämättä | Kun haluat tarkistaa päivitykset ennen yhdistämistä |
git pull |
Lataa ja yhdistää muutokset automaattisesti | Kun haluat välittömän synkronoinnin |
Esimerkiksi: Käyttää git fetch kun tehdään yhteistyötä muiden muutosten tarkistamiseksi ennen yhdistämistä.
6) Miten Git varmistaa datan eheyden?
Git varmistaa datan eheyden seuraavien avulla: SHA-1 hajautusJokainen commit, puu ja blob tunnistetaan yksilöllisellä 40 merkin tiivisteellä. Tämä takaa, että jopa yhden bitin muutos muuttaa tiivistettä estäen korruptoitumisen tai peukaloinnin.
Lisäksi Git käyttää ns. suunnattu asyklinen kaavio (DAG) rakenne, jossa commit viittaavat pääcommitteihinsa, mikä varmistaa yhdenmukaisen ja jäljitettävän historian.
Esimerkiksi: Jos tiedoston sisältö muuttuu, sen SHA-1-arvo muuttuu, joten Git tunnistaa sen uutena versiona välittömästi.
7) Selitä Git Rebase ja miten se eroaa Git Mergestä.
molemmat git merge ja git rebase integroivat muutoksia yhdestä haarasta toiseen, mutta ne eroavat lähestymistavasta.
- Yhdistää: Luo uuden yhdistämiskomennon, joka yhdistää historiat.
- Rebase: Siirtää tai toistaa committeja haarasta toiseen luoden lineaarisen historian.
| Tekijä | mennä | Perusta uudelleen |
|---|---|---|
| Commit-historia | Epälineaarinen | Lineaarinen |
| Uusi commit luotu | Kyllä | Ei |
| Käytä asiaa | Säilyttää historian | Puhtaampi historia |
Esimerkiksi: Käyttää git rebase puhtaan projektihistorian ylläpitämiseksi samalla git merge on parempi jaetuille julkisille haaroille.
8) Mitä ovat Git-hookit ja mitkä ovat niiden hyödyt?
Git-hookit ovat mukautettuja skriptejä, jotka laukaisevat tietyt Git-tapahtumat, kuten commitit, yhdistämiset tai push-päivitykset. Ne auttavat valvomaan koodausstandardeja ja automatisoimaan työnkulkuja.
Koukkujen tyypit:
- Asiakaspuolen koukut: Suorita paikallisissa toiminnoissa (esim. esivahvistus).
- Palvelinpuolen koukut: Suorita etätietovaraston toiminnot (esim. esivastaanotto).
Hyödyt:
- Estä muotoiluvirheitä sisältävät commitit.
- Automatisoi koodin lintting tai testaus.
- Varmista johdonmukaiset työnkulut eri tiimien välillä.
Esimerkiksi: A pre-commit hook voi hylätä commitit, jos yksikkötestit epäonnistuvat.
9) Mitkä ovat Gitin käytön edut ja haitat?
| Aspect | edut | Haitat |
|---|---|---|
| Suorituskyky | Nopea ja tehokas haarautumiseen/yhdistämiseen | Voi olla monimutkainen aloittelijoille |
| Yhteistyö | Mahdollistaa hajautetun kehityksen | Mahdollisia yhdistämiskonflikteja |
| Joustavuus | Toimii offline-tilassa | Vaatii käyttöönottoa ja opettelua |
| varastointi | Hoitaa suuria projekteja | Tallennustila voi kasvaa nopeasti |
Kaiken kaikkiaan Gitin hajautettu malli, datan eheys ja joustavuus tekevät siitä alan standardin, vaikka uusien kehittäjien on opittava se vasta myöhemmin.
10) Miten ratkaiset yhdistämiskonflikteja Gitissä?
Yhdistämiskonflikteja syntyy, kun Git ei pysty automaattisesti täsmäämään muutoksia haarojen välillä.
Ratkaisun vaiheet:
- Tunnista ristiriitaiset tiedostot
git status. - Avaa tiedosto ja etsi ristiriitamerkit (
<<<<<<<,=======,>>>>>>>). - Muokkaa tiedostoa manuaalisesti valitaksesi tai yhdistääksesi muutoksia.
- Luo tiedosto käyttämällä
git add. - Vahvista ratkaistu yhdistäminen
git commit.
Esimerkiksi: Kun kaksi kehittäjää muokkaa samaa riviä tiedostossa eri haaroissa, Git aiheuttaa yhdistämisen aikana ristiriidan, joka vaatii manuaalista ratkaisua.
11) Mitä eroa on git resetillä, git revertillä ja git checkoutilla?
Nämä kolme komentoa muokkaavat Git-historiaa eri tavoin ja palvelevat eri tarkoituksia.
| Komento | Toiminto | Tietojen vaikutus | Käytä asiaa |
|---|---|---|---|
git reset |
Siirtää HEAD-osoittimen taaksepäin tiettyyn commit-kohtaan | Muutokset tallennetaan historiaan | Kumoa commitit paikallisesti |
git revert |
Luo uuden commitin, joka kumoaa aiemmat muutokset | Säilyttää commit-historian | Kumoa commitit turvallisesti jaetuissa haaroissa |
git checkout |
Vaihtaa haaraa tai palauttaa tiedostoja | Ei vaikuta commit-historiaan | Siirry haarojen välillä tai hylkää paikalliset muutokset |
Esimerkiksi: Jos olet vahingossa siirtänyt arkaluonteisia tietoja, käytä git revert perua sen turvallisesti muuttamatta commit-historiaa.
Käyttää git reset --hard vain paikallisia korjauksia varten ennen työntämistä.
12) Selitä Gitin resetointityypit.
Git tarjoaa kolme päätyyppiä palautuksia riippuen siitä, kuinka kauas taaksepäin haluat kumota muutoksia.
| Tyyppi | Komento | Käyttäytyminen |
|---|---|---|
| Pehmeä | git reset --soft <commit> |
Siirtää HEAD-otsikon, mutta säilyttää indeksin ja työhakemiston ennallaan |
| Sekoitettu | git reset --mixed <commit> |
Siirtää HEAD-otsikon ja nollaa indeksin; muutokset säilyvät työhakemistossa |
| Kova | git reset --hard <commit> |
Nollaa HEAD-otsikon, indeksin ja työhakemiston kokonaan |
Esimerkiksi: Jos olet tehnyt muutoksia ennenaikaisesti, git reset --soft HEAD~1 sallii uudelleenkommentoinnin muokkauksen jälkeen.
13) Mikä on Git Stash ja milloin sitä kannattaa käyttää?
git stash tallentaa väliaikaisesti vahvistamattomat muutokset, jolloin voit vaihtaa haaraa menettämättä työtäsi.
Tämä on erityisen hyödyllistä moniajon aikana tai kun sinun on tarkistettava toinen haara kiireellisesti.
Yleiset komennot:
git stash: Tallentaa paikalliset muutoksesi.git stash popPalauttaa tallennetut muutokset.git stash list: Näyttää kaikki tallennetut kätköt.
Esimerkiksi: Jos olet puolivälissä ominaisuuden käyttöönottoa ja ilmenee tuotanto-ongelma, tallenna muutokset, korjaa ongelma ja ota sitten tallennettu työ uudelleen käyttöön.
14) Miten Git käsittelee etärepositorioita?
Gitin etärepositorio on internetissä tai verkossa isännöity projektisi versio, jota käytetään kehittäjien väliseen yhteistyöhön.
Yleisiä etäkomentoja:
| Komento | Tuotetiedot |
|---|---|
git remote add origin <url> |
Yhdistää paikallisen arkiston etäpalvelimeen |
git push |
Lähettää commitit etärepositorioon |
git pull |
Hakee ja yhdistää muutokset |
git fetch |
Hakee muutokset, mutta ei yhdistä niitä |
Esimerkiksi: Kehittäjät kloonaavat tyypillisesti etäarkiston alustoilta, kuten GitHub tai GitLab, osallistuakseen jaettuihin projekteihin.
15) Mitä ovat Git-tagit ja miksi ne ovat tärkeitä?
Tagit ovat viitteitä tiettyihin committeihin, joita käytetään usein merkitsemään julkaisupisteitä (esim. v1.0, v2.1).
Ne tarjoavat vakautta viittaamalla koodikannan muuttumattomiin versioihin.
Tunnisteiden tyypit:
- Kevyet tunnisteet: Yksinkertaiset commit-viittaukset.
- Merkityt tunnisteet: Tallenna metatiedot (tekijä, viesti, päivämäärä).
| Komento | Tarkoitus |
|---|---|
git tag v1.0 |
Luo kevyen tunnisteen |
git tag -a v2.0 -m "Release 2.0" |
Luo annotoidun tunnisteen |
git push origin --tags |
Työntää kaikki tunnisteet etälaitteeseen |
Esimerkiksi: Julkaisutiimit käyttävät annotoituja tunnisteita vakaiden tuoteversioiden pakkaamiseen ja käyttöönottoon.
16) Mikä on Git Cherry-Pick ja miten se on hyödyllinen?
git cherry-pick sallii tiettyjen committien valikoivan integroinnin yhdestä haarasta toiseen.
Tästä on hyötyä, kun haluat ottaa käyttöön tietyn virheenkorjauksen tai ominaisuuden yhdistämättä koko haaraa.
Esimerkiksi: Voit tehdä korjauksen osoitteesta feature/bugfix että main avulla:
git cherry-pick <commit-hash>
Hyödyt:
- Tarkka hallinta commit-integraatiossa.
- Välttää tarpeettomia koodin yhdistämisiä.
- Säilyttää siistimmän historian kriittisissä haaroissa.
17) Mikä on Git Squash ja mitkä ovat sen hyödyt?
Gitin squashing yhdistää useita committeja yhdeksi, mikä yksinkertaistaa ja selkeyttää commit-historiaa.
Command:
git rebase -i HEAD~3
Valitse sitten squash vaihtoehto yhdistettäville commiteille.
Hyödyt:
- Luo tiiviin historian.
- Helpottaa pull-pyyntöjen tarkastelua.
- Vähentää pienten committien aiheuttamaa sotkua.
Esimerkiksi: Ennen ominaisuushaaran yhdistämistä kehittäjät usein tiivistävät kaikki pienet commitit yhdeksi merkitykselliseksi commitiksi.
18) Miten Gitissä voi perua push-commitin?
Kun commit on lähetetty etärepositorioon, sitä ei voida poistaa turvallisesti, mutta se voidaan palauttaa käyttämällä:
git revert <commit-hash> git push origin main
Ero nollauksen ja Revert:
| Tekijä | asettaa uudelleen | RevERT |
|---|---|---|
| Historia | Kirjoittaa historiaa uudelleen | Säilyttää historian |
| Turvallisuus | Ei turvallinen jaetuille arkistoille | Turvallinen julkisille toimipisteille |
| Käyttö | Paikallinen kumoa | Etäkumoa |
Esimerkiksi: Jos virheellinen commit on jo GitHubissa, käytä git revert sijasta git reset ylläpitääkseen yhteistä ja johdonmukaista historiaa.
19) Mitä eroa on Gitillä ja GitHubilla?
Git on a versionhallintatyökalu, kun taas GitHub on pilvipohjainen alusta Git-arkistojen ylläpitoon.
| Aspect | mennä | GitHub |
|---|---|---|
| luonto | Komentorivityökalu | Verkkopohjainen palvelu |
| Toiminto | Seuraa koodimuutoksia paikallisesti | Mahdollistaa etäyhteistyön |
| Internet-vaatimus | Suosittelijan tunnus | edellytetään |
| Omistus | Avoin lähdekoodi (Linus Torvaldsin kirjoittama) | Omistuksessa Microsoft |
Esimerkiksi: Kehittäjä käyttää Gitiä lähdekoodiversioiden hallintaan paikallisesti ja GitHubia koodin jakamiseen ja tarkasteluun tiimikavereiden kanssa.
20) Mitä erilaisia Gitin yhdistämisstrategioita on olemassa?
Git tarjoaa erilaisia yhdistämisstrategioita riippuen siitä, miten haluat yhdistää muutokset.
| Strategia | Tuotetiedot | Käytä asiaa |
|---|---|---|
| Rekursiivinen | Oletusarvo; yhdistää kaksi haaraa | Vakioyhdistämiset |
| meidän | Säilyttää nykyisen haaran muutokset | Hylätään saapuvia muutoksia |
| Heidän | Säilyttää saapuvan haaran muutokset | Paikallisten muutosten ohittaminen |
| Mustekala | Yhdistää useita haaroja samanaikaisesti | Integraatiohaarat |
Esimerkiksi: Monimutkaisten integraatioiden aikana kehittäjät voivat käyttää recursive strategia standardifuusioille tai ours priorisoida paikallisia muutoksia.
21) Mikä on Gitin irrallinen HEAD ja miten se korjataan?
A irrotettu PÄÄ tapahtuu, kun HEAD osoitin ei osoita haaraan, vaan tiettyyn commit-tiedostoon. Näin tapahtuu, kun tarkistat aiemman commit-tiedoston suoraan käyttämällä:
git checkout <commit-hash>
Tässä tilassa uudet commitit eivät liity haaraan ja ne voivat kadota, jos niihin ei viitata oikein.
Kuinka korjata:
- Luo uusi haara irrallaan olevasta tilasta:
git checkout -b temp-branch
- Sitten vahvista tai yhdistä normaalisti.
Esimerkiksi: Vanhempaa koodiversiota testattaessa saatat syöttää erillisen HEAD-otsikon. Luo aina haara muutosten säilyttämiseksi.
22) Mikä on git reflogin tarkoitus ja milloin sitä tulisi käyttää?
git reflog on tehokas komento, joka seuraa kaikkia liikkeitä HEAD osoitin, myös ne, jotka eivät ole osa näkyvää haarahistoriaa. Se toimii turvaverkkona kadonneiden committien palauttamiseksi.
Käyttö:
git reflog git checkout <commit-hash>
Esimerkiksi:
Jos vahingossa juokset git reset --hard ja menettää viimeisimmät commitit, git reflog antaa sinun löytää ja palauttaa ne.
Hyödyt:
- Palauttaa kadonneen työn virheellisen uudelleenpohjustuksen tai nollauksen jälkeen.
- Tarjoaa yksityiskohtaisen commit-navigointihistorian.
- Parantaa turvallisuutta monimutkaisissa työnkuluissa.
23) Selitä Gitin alimoduulit ja niiden käyttötapaukset.
A Git-alimoduuli mahdollistaa yhden Git-repositorion sisällyttämisen alikansiona toisen sisällä. Sitä käytetään hallittaessa projekteja, jotka ovat riippuvaisia muista repositorioista.
Yleiset komennot:
git submodule add <repo-url> git submodule update --init
Esimerkiksi: Verkkosovellus voi sisältää jaetun todennusmoduulin Git-alimoduulina useissa projekteissa.
| edut | Haitat |
|---|---|
| Promotes koodin uudelleenkäyttöä | Voi monimutkaista CI/CD-putkistoja |
| Ylläpitää itsenäisiä historioita | Vaatii manuaalisia päivityksiä |
| Varmistaa versioiden yhdenmukaisuuden | Korkeampi oppimiskäyrä |
24) Mitä ovat Git-työnkulut ja mitä eri tyyppejä niitä on?
Git-työnkulut määrittelevät strukturoidun lähestymistavan, jota tiimit käyttävät yhteistyöhön Gitin kanssa. Suosituimmat tyypit ovat:
| Työnkulku | Tuotetiedot | Käytä asiaa |
|---|---|---|
| Git Flow | Käyttää ominaisuus-, kehitys- ja julkaisuhaaroja | Suuret hankkeet |
| GitHub-työnkulku | Yksinkertaistettu työnkulku pää- ja ominaisuushaarojen avulla | Jatkuva käyttöönotto |
| GitLab-työnkulku | Yhdistää Git Flow'n CI/CD-integraatioon | DevOps-keskeiset projektit |
| Runkopohjainen | Kehittäjät sitoutuvat yhteen jaettuun haaraan | Ketterät ja nopeat toimitustiimit |
Esimerkiksi: Startupit omaksuvat usein Runkopohjainen työnkulkuja nopeuden vuoksi, kun taas yritykset suosivat Git Flow kontrolloituja vapautuksia varten.
25) Mikä on Git Bisect ja miten se auttaa virheenkorjauksessa?
git bisect on tehokas virheenkorjaustyökalu, joka käyttää binäärihakua tunnistaakseen virheen aiheuttaneen commitin.
Esimerkki työnkulusta:
- Aloita puolitus:
git bisect start - Merkitse nykyinen commit huonoksi:
git bisect bad - Merkitse viimeisin tunnettu onnistunut commit:
git bisect good <commit> - Git tarkistaa keskipisteen automaattisesti.
- Testaa ja jatka, kunnes viallinen commit löytyy.
Hyödyt:
- Nopeuttaa virheiden jäljitystä suurissa koodikannoissa.
- Vähentää manuaalista commit-tarkistusta.
- Ihanteellinen CI/CD-regressiotestaukseen.
26) Mitä eroa on Git Merge Conflictin ja Rebase Conflictin välillä?
Molemmat syntyvät, kun Git ei pysty automaattisesti sovittamaan yhteen koodieroja, mutta ne tapahtuvat eri yhteyksissä.
| Tyyppi | Kun se tapahtuu | päätöslauselma |
|---|---|---|
| Yhdistämisristiriita | Aikana git merge oksien välissä |
Ratkaise kohdehaarassa |
| Uudelleenpohjainen konflikti | Aikana git rebase committien uudelleentoiston aikana |
Ratkaise uudelleenpohjauksen aikana ja jatka sitten git rebase --continue |
Esimerkiksi: Jos samaa riviä muokataan eri tavoin kahdessa haarassa, syntyy yhdistämisristiriita; uudelleenpohjustuksen aikana samankaltaiset muutokset laukaisevat myös uudelleenpohjustuksen ristiriitoja.
27) Miten Git voidaan integroida CI/CD-putkiin?
Git muodostaa nykyaikaisten CI/CD-työnkulkujen perustan käynnistämällä automatisoituja prosesseja jokaisen commit- tai pull-pyynnön yhteydessä.
Integraatioesimerkki:
- Vahvista työntö → Käynnistää CI-putken (Jenkinsin, GitHub Actionsin tai GitLab CI:n kautta).
- Rakenna ja testaa → Automaattiset testit validoivat commitin.
- Sijoittaa → Muutokset siirretään vaiheittaiseen tai tuotantoon.
Hyödyt:
- Varmistaa yhdenmukaiset käyttöönotot.
- Mahdollistaa nopeat takaisinkytkentäsyklit.
- Vähentää inhimillisiä virheitä julkaisuissa.
Esimerkiksi: GitHub Actions voi testata ja ottaa projektin käyttöön automaattisesti, kun muutoksia lähetetään main haara.
28) Mitä eroa on git cleanin ja git resetin välillä?
| Komento | Tarkoitus | Laajuus | esimerkki |
|---|---|---|---|
git clean |
Poistaa seuraamattomat tiedostot | Työhakemisto | git clean -f -d |
git reset |
Siirtää HEAD-osoitinta | Commit-tiedostot, indeksi ja työpuu | git reset --hard HEAD~1 |
Esimerkiksi: Jos työtilassasi on väliaikaisia tai luotuja tiedostoja, joita Git ei seuraa, käytä git cleanJos sinun täytyy kumota commit-komento, käytä git reset.
Vinkki: Tarkista aina git clean -n ennen suorittamista vahingossa tapahtuvien poistojen välttämiseksi.
29) Mitä ovat Git Reflogin ja Git Login eroavaisuudet?
Vaikka molemmat näyttävät commit-historian, niillä on eri tarkoitukset.
| Komento | Kappaleet | Sisältää poistetut commitit | Käytä asiaa |
|---|---|---|---|
git log |
Näkyvä commit-historia | Ei | RevIEW-projektin edistyminen |
git reflog |
Kaikki PÄÄN liikkeet | Kyllä | Palauta menetetyt commitit |
Esimerkiksi: Kun olet vahingossa poistanut haaran, voit käyttää git reflog paikantaakseen ja palauttaakseen viimeisen commitin, joka ei näkyisi git log.
30) Mitkä ovat parhaat käytännöt Gitin tehokkaaseen käyttöön suurissa tiimeissä?
- Käytä haarojen nimeämiskäytäntöjä: Noudata kaavaa, kuten
feature/login-ui or bugfix/payment. - Sitoudu usein mutta merkityksellisesti: Pidä jokainen commit keskittyneenä yhteen loogiseen muutokseen.
- Kirjoittaa Descriptive Commit -viestit: Käytä käskymuotoa, esim.
"Fix user login validation." - Pohjauksen muuttaminen ennen yhdistämistä: Pitää commit-historian puhtaana.
- Käytä pull-pyyntöjä seuraaviin tarkoituksiin: Revnäkemykset: Promotestiyhteistyö ja koodin laatu.
- Tagien julkaisuja johdonmukaisesti: Auttaa versiohallinnassa ja palautuksissa.
- Automatisoi testaus CI/CD:n kautta: Varmistaa vakaan integraation ja nopeammat julkaisut.
Esimerkiksi: Yrityskehityksessä Gitin jäsennelty käyttö estää konflikteja ja yksinkertaistaa julkaisujen hallintaa.
31) Mikä on Git Internals ja miten Git tallentaa dataa?
Gitin sisäiset komponentit viittaavat Gitin toiminnallisuutta tukevaan matalan tason arkkitehtuuriin. Git tallentaa kaiken (tiedostot, hakemistot, commitit) muodossa esineet vuonna .git/objects hakemisto. Nämä objektit tunnistetaan SHA-1-tiivisteet ja luokiteltu blobit, puut, commitit ja tagit.
Tietojen tallennuksen elinkaari:
- Kun tiedosto lisätään, sen sisältö tallennetaan
blob. - A
treekarttatiedostojen rakenne. - A
commitsitoo puita ja metatietoja. - A
tagviittaa julkaisujen committeihin.
Esimerkiksi: Running git cat-file -p <hash> antaa sinun tarkastella Git-objekteja suoraan.
Tämä muotoilu varmistaa tietojen eheys, version jäljitettävyysja kevyt suorituskyky, mikä tekee Gitistä erittäin tehokkaan verrattuna vanhempiin järjestelmiin, kuten SVN:ään.
32) Mitä eroa on Git Rebase Interactivella ja Git Mergellä?
| Tekijä | Git Rebase Interactive (git rebase -i) |
Git-yhdistäminen |
|---|---|---|
| Tarkoitus | Mahdollistaa committien muokkaamisen, uudelleenjärjestämisen ja tiivistemisen | Yhdistää historiaa |
| Historia | Kirjoittaa historiaa uudelleen | Säilyttää kaikki commitit |
| Käytä asiaa | Siivous ennen yhdistämistä | Alkuperäisen aikataulun säilyttäminen |
Esimerkiksi: Ennen ominaisuushaaran yhdistämistä kehittäjä voi käyttää:
git rebase -i main
tarpeettomien committien poistamiseksi ja puhtaamman, lineaarisemman historian tuottamiseksi.
mennä on turvallisempi yhteistyöhaaroille, kun taas Rebase parantaa yksityisten kehitystyönkulkujen luettavuutta.
33) Mikä on Sparse Checkout Gitissä ja mitkä ovat sen hyödyt?
Harva kassa antaa kehittäjille mahdollisuuden kloonata tai työskennellä vain osalla tiedostoja suuresta arkistosta, mikä vähentää paikallisen tallennustilan käyttöä ja nopeuttaa toimintaa.
Käskyt:
git clone --no-checkout <repo-url> git sparse-checkout init --cone git sparse-checkout set <folder-path>
Hyödyt:
- Parantaa suorituskykyä monorepoissa.
- Vähentää levyn käyttöä.
- Ihanteellinen mikropalveluarkkitehtuureille.
Esimerkiksi: Suuressa yritysprojektissa kehittäjät saattavat tarvita vain /frontend kansio. Sparse Checkout lataa vain kyseisen hakemiston, välttäen tarpeetonta gigatavua taustakoodia.
34) Mikä on matala klooni ja milloin sitä tulisi käyttää?
A Matala klooni lataa vain osan arkiston historiasta, mikä tekee kloonaamisesta paljon nopeampaa.
Command:
git clone --depth=1 <repo-url>
Hyödyt:
- Lyhentää suurten repositorioiden kloonausaikaa.
- Säästää kaistanleveyttä ja levytilaa.
- Hyödyllinen CI-putkille, jotka tarvitsevat vain tuoreita committeja.
Haitat:
- Vanhempia committeja tai uudelleenasennuksia ei voida käyttää noudetun syvyyden ulkopuolella.
- Rajoitettu historian näkyvyys.
Esimerkiksi: CI/CD-järjestelmät käyttävät usein matalia klooneja hakeakseen nopeasti uusimman koodiversion automatisoituja koonteja varten ilman täydellistä commit-historiaa.
35) Mikä on Git LFS (Large File Storage) ja mihin sitä käytetään?
git-lfs (Large File Storage) on laajennus, joka korvaa suuret tiedostot (esim. kuvat, datasetit, binäärit) kevyillä tekstiosoittimilla Gitin sisällä ja tallentaa varsinaisen sisällön etä-LFS-palvelimelle.
Komentoesimerkki:
git lfs install git lfs track "*.zip"
edut:
- Pitää arkiston kevyenä.
- Parantaa suorituskykyä suurten binaaritiedostojen kanssa.
- Toimii saumattomasti GitHubin, GitLabin ja Bitbucketin kanssa.
Esimerkiksi: Pelikehitystiimit käyttävät Git LFS:ää suurten 3D-resurssien käsittelyyn hidastamatta Gitin normaaleja toimintoja.
36) Miten Git voidaan konfiguroida optimaalisen suorituskyvyn saavuttamiseksi?
Voit parantaa Gitin nopeutta ja käytettävyyttä hienosäätämällä määritysparametreja.
Parhaat käytännöt:
- Ota pakkaus käyttöön:
git config --global core.compression 9 - Aseta automaattinen roskienkeräys:
git gc --auto - Käytä rinnakkaisnoutoa (v2.31+):
git config --global fetch.parallel 4 - Ota käyttöön tunnistetietojen välimuisti:
git config --global credential.helper cache
Esimerkiksi: Yritystason tietovarastoissa Gitin haku- ja pakkausasetusten optimointi vähentää merkittävästi klooni- ja pull-viivettä, mikä parantaa hajautettujen tiimien tuottavuutta.
37) Mitä on Commit Signing (GPG) Gitissä ja miksi se on tärkeä?
Commit-allekirjoituksen käyttötarkoitukset GPG (GNU Privacy Guard) kryptografisesti tarkistaa committien aitouden varmistaen, että muutokset tulevat luotettavilta osallistujilta.
Asennusesimerkki:
git config --global user.signingkey <GPG-key> git commit -S -m "Signed commit"
Hyödyt:
- Estää luvattomat tai henkilöllisyyden alaisena tehdyt commitit.
- Parantaa arkiston turvallisuutta ja auditoitavuutta.
- Rakentaa organisaatioluottamusta.
Esimerkiksi: Avoimen lähdekoodin projektit vaativat usein GPG:n allekirjoittamia commit-muutoksia ulkopuolisten kehittäjien panosten aitouden vahvistamiseksi.
38) Miten Git käsittelee binääritiedostoja eri tavalla kuin tekstitiedostoja?
Git on optimoitu tekstipohjaiselle lähdekoodille ja kappaleille rivi riviltä tapahtuvat muutokset, mikä ei toimi hyvin binääritiedostojen kanssa. Binääritiedostot tallennetaan yksittäisinä blobeina – kaikki muutokset luovat uuden version vertailuarvon sijaan.
| Tiedostotyyppi | Varastoinnin tehokkuus | Diff-tuki | Suositeltu käsittely |
|---|---|---|---|
| teksti | Erittäin tehokas | Kyllä | Oletus-Git |
| Binaarinen | tehoton | Ei | Käytä Git LFS:ää |
Esimerkiksi: Paljon kuvia sisältävissä tietovarastoissa Git LFS:n käyttöönotto estää suorituskyvyn heikkenemisen, joka johtuu usein toistuvista binaaritiedostojen päivityksistä.
39) Miten ratkaiset yleisiä Git-ongelmia, kuten irronneita HEAD-virheitä tai yhdistämisvirheitä?
Yleisiä ongelmia ja korjauksia:
| Kysymys | Aiheuttaa | Ratkaisu |
|---|---|---|
| Irrotettu PÄÄ | Tietyn commitin uloskirjautuminen | Luo haara, jossa on git checkout -b new-branch |
| Yhdistämisristiriita | Ristiriitaiset muokkaukset tiedostoissa | Ratkaise sitten manuaalisesti git add ja git commit |
| Kadonneet commitit | Vahingossa oleva nollaus tai uudelleenasennus | Käyttää git reflog elpyä |
| Työntö hylätty | Etäpäivitykset tulossa | Vedä tai aseta pohja takaisin ennen työntämistä |
Esimerkiksi: Kun esiintyy "ei-pikakelaus"-virheitä, se tarkoittaa yleensä, että etämuutoksia on olemassa – käytä git pull --rebase synkronoida ennen uudelleenyritystä.
40) Mitkä ovat Git-arkistojen tietoturvan parhaat käytännöt?
- Käytä SSH- tai HTTPS-todennusta: Vältä tavallisten tunnistetietojen käyttöä.
- Ota 2FA käyttöön Git-hostingalustoilla.
- Vältä salaisuuksien tai avainten paljastamista: Käyttää
.gitignoretai työkaluja, kuten GitGuardian. - Allekirjoita commitit GPG-avaimilla.
- Rajoita käyttöoikeuksia: Valvo pienimpien oikeuksien periaatteita.
- Käytä haaran suojaussääntöjä
mainormaster. - Suorita säännöllisiä arkiston tarkastuksia.
Esimerkiksi: Yritykset usein integroivat salaisen skannauksen ja valvovat allekirjoitettuja muutoksia CI/CD-putkissa estääkseen tietovuodot ja luvattomat muutokset.
41) Miten automatisoit Git-operaatiot käyttämällä komentotulkkia tai Python käsikirjoituksia?
Git-automaatio parantaa tuottavuutta ja yhdenmukaisuutta toistuvissa tehtävissä, kuten commiteissa, yhdistämisissä ja käyttöönotoissa.
Esimerkki – Shell-skripti:
#!/bin/bash git add . git commit -m "Auto commit on $(date)" git push origin main
Esimerkki - Python Skripti (käyttäen Gitiä)Python):
from git import Repo
repo = Repo('.')
repo.git.add(A=True)
repo.index.commit("Automated commit")
origin = repo.remote(name='origin')
origin.push()
Hyödyt:
- Vähentää manuaalista työtä.
- Varmistaa yhdenmukaiset commit-mallit.
- Integroituu saumattomasti CI/CD- ja DevOps-prosessien kanssa.
42) Mitä ovat Git Hookit ja miten niitä voidaan käyttää automaatiossa?
Git Hooks ovat tiettyjen Git-tapahtumien laukaisemia skriptejä, joita käytetään sääntöjen valvomiseen tai prosessien automatisointiin.
Koukkujen tyypit:
| Tyyppi | Käy | esimerkki |
|---|---|---|
| Asiakkaan puolella | Kehittäjän kone | pre-commit, prepare-commit-msg |
| Palvelimen puolella | Etärepositorio | pre-receive, post-receive |
Esimerkiksi: A pre-commit hook voi suorittaa linter- tai yksikkötestejä ennen commitin sallimista.
Hyödyt:
- Säilyttää koodin laadun.
- Estää käytäntöjen rikkomukset.
- Automatisoi toistuvat validointitehtävät työnkuluissa.
43) Miten siirtäisit projektin SVN:stä tai Mercurialista Gitiin?
Siirtyminen keskitetyistä järjestelmistä, kuten SVN että mennä sisältää strukturoidun muuntamisen commit-historian säilyttämiseksi.
Vaiheet:
- Asenna siirtotyökalut:
git svnorsvn2git. - Kloonaa SVN-arkisto:
git svn clone <SVN_URL> --trunk=trunk --branches=branches --tags=tags
- Muunna tagit ja haarat.
- Lähetä etä-Git-arkistoon (esim. GitHub).
edut:
- Mahdollistaa hajautetut työnkulut.
- Lisää suorituskykyä ja joustavuutta.
- Yksinkertaistaa haarautumista ja yhdistämistä.
Esimerkiksi: Organisaatiot, jotka siirtyvät vanhoista SVN-järjestelmistä, käyttävät svn2git säilyttääkseen tekijyyden ja sitoutuakseen historiaan.
44) Mitä eroja on Git Flow'lla ja Trunk-pohjaisella kehityksellä?
| Aspect | Git Flow | Runkopohjainen kehitys |
|---|---|---|
| haarautuvan | Useita haaroja (kehitys, julkaisu) | Yksi päähaara |
| Julkaisumalli | Kiinteät julkaisujaksot | Jatkuva käyttöönotto |
| Monimutkaisuus | Kohtalainen tai korkea | Matala |
| Best For | Suuret, vakaat tiimit | Ketterät, nopeasti liikkuvat tiimit |
Esimerkiksi: Git Flow sopii parhaiten yritysprojekteihin, joissa on kontrolloituja julkaisuja, kun taas Trunk-Based on ihanteellinen startup-yrityksille tai mikropalveluille, joissa nopeus on kriittistä.
Hyötyjen vertailu:
- Git-virtaus: Vahva versionhallinta.
- Runkopohjainen: Nopeampi palaute ja CI/CD-kohdistus.
45) Millä strategioilla Gitin suorituskykyä voidaan optimoida erittäin suurissa repositorioissa?
Yritystason projekteissa, joissa on tuhansia committeja tai osallistujia, Gitin suorituskyky voi heikentyä, jos sitä ei optimoida.
Keskeiset optimointistrategiat:
- Käyttää Matalat kloonit (
--depth=1) nopeampia maksuja varten. - Käyttää Harva kassa hakemaan vain asiaankuuluvat hakemistot.
- ajaa Roskakokoelma:
git gc --aggressive. - Jaa monorepot alimoduuleiksi tai mikropalveluiksi.
- Pakkaa objekteja ja tiedostoja säännöllisesti.
Esimerkiksi: Yli 10 Gt:n kokoisissa monorepoissa harvan uloskirjautumisen ja säännöllisen roskienkeruun käyttöönotto lyhentää klooni- ja hakuaikoja merkittävästi.
46) Miten Git tukee yhteistyöhön perustuvaa kehitystä hajautetuissa tiimeissä?
Git mahdollistaa yhteistyön jakamalla täydellisiä repository-kopioita kehittäjien kesken. Jokainen kehittäjä voi tehdä commitin paikallisesti, siirtää muutoksia etätyöasemille ja yhdistää muiden töitä.
Yhteistyönkulun esimerkki:
- Haarauta arkisto.
- Luo ominaisuushaara.
- Lähetä muutokset ja avaa pull-pyyntö.
- Revkatso ja sulaudu yhteen
main.
Hyödyt:
- Mahdollistaa rinnakkaisen ominaisuuksien kehittämisen.
- Vähentää riippuvuusongelmia.
- Tukee offline-työtä ja joustavia työnkulkuja.
Esimerkiksi: Avoimen lähdekoodin kehittäjät ympäri maailmaa tekevät yhteistyötä asynkronisesti GitHubissa isännöityjen forkien ja pull-pyyntöjen kautta.
47) Mikä on Gitin roskienkeruu ja miksi se on tärkeä?
git gc (Roskakeräys) puhdistaa tarpeettomat tiedostot ja optimoi arkiston tallennustilan pakkaamalla objekteja ja karsimalla saavuttamattomia committeja.
Command:
git gc --aggressive --prune=now
Hyödyt:
- Vapauttaa levytilaa.
- Parantaa arkiston suorituskykyä.
- Vähentää redundanssia commit-objekteissa.
Esimerkiksi: Kehittäjät käyttävät usein git gc useiden yhdistämisten tai haarojen poistojen jälkeen arkiston kunnon ylläpitämiseksi, erityisesti pitkäikäisissä projekteissa.
48) Mikä on Git Blame ja miten sitä käytetään virheenkorjaukseen?
git blame tunnistaa kuka commit ja tekijä muokkasi tiedoston kutakin riviä viimeksi.
Komentoesimerkki:
git blame app.py
Käytä koteloita:
- Vikojen leviämisen jäljitys.
- Koodiosien omistajuuden tunnistaminen.
- Muutosten auditointi vastuullisuuden varmistamiseksi.
Esimerkiksi: Jos toiminto alkoi epäonnistua viimeisimmän päivityksen jälkeen, git blame voi paikantaa muutoksen tehneen commitin ja kehittäjän, mikä nopeuttaa virheenkorjausta.
49) Mitä eroa on haarautumisella ja kloonauksella Gitissä?
| Tekijä | Haarukka | klooni |
|---|---|---|
| Määritelmä | Kopio tililläsi olevasta arkistosta hosting-palvelussa | Paikallinen kopio arkistosta |
| Sijainti | Palvelinpuoli (esim. GitHub) | Kehittäjän kone |
| Käytä asiaa | Osallistuminen toiseen projektiin | Paikallinen kehitys |
| Yhteys | Yhdistetty pull-pyyntöjen kautta | Suora synkronointi kaukosäätimen kanssa |
Esimerkiksi: Kun osallistut avoimen lähdekoodin projekteihin, haaraat repositorion, teet muutoksia paikallisesti kloonauksen jälkeen ja lähetät pull-pyynnön tarkistettavaksi.
50) Mitkä ovat yleisimmät Git-virheet ja miten niitä voi välttää?
| Virhe | Tuotetiedot | Ehkäisy |
|---|---|---|
| Arkaluonteisten tietojen lähettäminen | Mukana olevat salaisuudet tai tunnistetiedot | Käyttää .gitignore tai GitGuardian |
| Pakota jaettuihin haaroihin | Ylikirjoittaa muiden töitä | Käyttää --force-with-lease |
| Suuret binääritiedostojen commitit | Hidastaa repon suorituskykyä | Käytä Git LFS:ää |
| Koodiarvostelujen ohittaminen | Johtaa huonoon laatuun | Käytä pull-pyyntöjä |
| Uudelleenpohjustuksen ristiriitojen huomiotta jättäminen | Syyt yhdistävät kaaoksen | Ratkaise konfliktit huolellisesti ennen työntämistä |
Esimerkiksi: Kehittäjä työntää vahingossa .env tunnistetiedosto voi paljastaa arkaluonteisia tietoja; tämä voidaan välttää .gitignore säännöt ja ennakkoon tehtävät koukut.
🔍 Tärkeimmät GIT-haastattelukysymykset tosielämän skenaarioilla ja strategisilla vastauksilla
1) Mikä on Git, ja miten se eroaa muista versionhallintajärjestelmistä?
Ehdokkaalta odotetaan: Haastattelija haluaa arvioida ymmärrystäsi Gitin perusteista ja sen eduista keskitettyihin järjestelmiin verrattuna.
Esimerkki vastauksesta: Git on hajautettu versionhallintajärjestelmä, jonka avulla kehittäjät voivat seurata muutoksia koodikannassaan ja tehdä tehokasta yhteistyötä. Toisin kuin keskitetyt järjestelmät, kuten SVN, Git antaa jokaiselle kehittäjälle täyden kopion repositoriosta, mukaan lukien sen historian. Tämä rakenne tukee offline-työskentelyä, nopeampia toimintoja sekä parempia haarautumis- ja yhdistämisominaisuuksia.
2) Voitko selittää git fetchin, git pullin ja git mergen välisen eron?
Ehdokkaalta odotetaan: Haastattelija testaa tietämystäsi yleisistä Git-komennoista ja niiden käyttötarkoituksista.
Esimerkki vastauksesta: git fetch lataa uutta dataa etätietovarastosta, mutta ei integroi sitä nykyiseen haaraasi. git pull suorittaa noudon, jota seuraa automaattinen yhdistäminen ja uusien committien integrointi. git merge käytetään yhdistämään muutokset yhdestä haarasta toiseen manuaalisesti päivitysten noutamisen jälkeen.
3) Kuvaile tilannetta, jossa jouduit ratkaisemaan yhdistämiskonfliktin. Miten käsittelit sen?
Ehdokkaalta odotetaan: Haastattelija haluaa tietää konfliktienratkaisutaidoistasi ja kyvystäsi hallita yhteistyöhön perustuvia työnkulkuja.
Esimerkki vastauksesta: Edellisessä työssäni työskentelimme usein jaettujen haarojen parissa, mikä joskus johti yhdistämiskonflikteihin. Kun kohtasin sellaisen, käytin git status tunnistaakseni ristiriitaiset tiedostot ja tarkistin molemmat versiot päättääkseni, mitkä muutokset säilyttää. Tiedostojen muokkaamisen ja testaamisen jälkeen merkitsin ristiriidan ratkaistuksi ja vahvistin muutokset. Olin myös yhteydessä tiimiin, jotta vastaavia ongelmia vältettäisiin tulevaisuudessa parantamalla haaranhallintakäytäntöjä.
4) Miten haarautumisstrategioita käytetään Gitissä projektien hallintaan?
Ehdokkaalta odotetaan: Haastattelija haluaa tietää, ymmärrätkö strukturoituja työnkulkuja, kuten Git Flow'ta tai runkopohjaista kehitystä.
Esimerkki vastauksesta: Käytän tyypillisesti Git Flow -strategiaa, joka sisältää main, developja ominaisuushaarat. Ominaisuushaarat luodaan jokaiselle uudelle tehtävälle, jotka yhdistetään develop valmistumisen jälkeen ja testataan sitten ennen yhdistämistä mainTämä menetelmä varmistaa hallitun integroinnin ja puhtaat julkaisusyklit.
5) Mitä tekisit, jos vahingossa tallentaisit arkaluonteisia tietoja Git-arkistoon?
Ehdokkaalta odotetaan: Haastattelija arvioi kykyäsi reagoida tehokkaasti tietoturva- tai vaatimustenmukaisuusongelmaan.
Esimerkki vastauksesta: Ensin poistaisin arkaluontoisen tiedoston käyttämällä git rm --cached ja vahvistan muutoksen. Seuraavaksi käyttäisin työkaluja, kuten git filter-branch or BFG Repo-Cleaner poistaakseni tiedot historiasta. Lopuksi kierrättäisin kaikki paljastuneet tunnistetiedot ja ilmoittaisin niistä asiaankuuluville sidosryhmille mahdollisten riskien välttämiseksi.
6) Miten varmistat koodin yhdenmukaisuuden, kun useat kehittäjät tekevät commitin samanaikaisesti?
Ehdokkaalta odotetaan: Haastattelija haluaa ymmärtää, miten ylläpidät koodin eheyttä yhteistyöympäristöissä.
Esimerkki vastauksesta: Edellisessä työpaikassani otimme käyttöön käytännön, jonka mukaan kaikkien committien on läpäistävä pull-pyynnöt ja koodin tarkistukset. Automaattiset CI-tarkistukset varmistivat, että vain testattu ja tarkistettu koodi yhdistettiin. Tämä lähestymistapa säilytti laadun ja yhdenmukaisuuden kaikissa haaroissa.
7) Miten palauttaisit commitin, joka on jo lähetetty jaettuun haaraan?
Ehdokkaalta odotetaan: Haastattelija haluaa tietää, ymmärrätkö, miten virheitä hallitaan turvallisesti jaetussa tietovarastossa.
Esimerkki vastauksesta: Turvallisin tapa on käyttää git revert <commit_id>, joka luo uuden commitin, joka kumoaa määritetyn commitin muutokset. Tämä säilyttää projektin historian ja välttää muiden kehittäjien häiritsemisen, toisin kuin git reset, joka kirjoittaa historiaa uusiksi.
8) Kerro minulle tilanteesta, jossa sinun piti hallita useita eri julkaisujen haaroja.
Ehdokkaalta odotetaan: Haastattelija haluaa saada käsityksen kyvystäsi hallita monimutkaisuutta versionhallinnassa.
Esimerkki vastauksesta: Edellisessä roolissani ylläpidimme useita asiakkaille julkaistuja versioita. Käytin erillisiä julkaisuhaaroja kullekin versiolle ja tein kriittiset korjaukset valitsemalla ne cherry pick -menetelmällä. Tämä varmisti, että päivitykset tehtiin yhdenmukaisesti ilman, että uudemmissa versioissa tapahtuisi regressioita.
9) Miten käsittelet suuria repositorioita, joissa on paljon osallistujia, jotta suorituskyky pysyy optimaalisena?
Ehdokkaalta odotetaan: Haastattelija arvioi tietämystäsi Gitin tehokkaasta skaalaamisesta.
Esimerkki vastauksesta: Kannustan pinnallista kloonausta (--depth) nopeampaa käyttöä varten .gitignore tarpeettomien tiedostojen poissulkemiseksi. Karsimme myös vanhoja haaroja säännöllisesti ja käytämme Git LFS:ää (Large File Storage) binääriresursseille. Nämä vaiheet pitävät arkiston tehokkaana ja hallittavana.
10) Kuvaile tilannetta, jossa jouduit debugaamaan Git-ongelman, joka keskeytti kehitystä. Mikä oli lähestymistapasi?
Ehdokkaalta odotetaan: Haastattelija haluaa nähdä analyyttisen ajattelusi ja ongelmanratkaisukykysi.
Esimerkki vastauksesta: Edellisessä työpaikassa tiimin jäsenen sivuhaarahistoria vioittui virheellisen uudelleensijoituksen vuoksi. Tutkin asiaa käyttämällä git log ja git reflog jäljittääkseni ongelman. Sitten palautin oikeat commitit käyttämällä git cherry-pick ja varmisti, että kaikkien paikalliset toimipisteet synkronoitiin korjatun etäversion kanssa. Tämä esti lisähäiriöt ja ylläpiti tiimin tuottavuutta.

