top 40 git interview questions
Najbolj priljubljena vprašanja o intervjujih GIT z odgovori in primeri:
Ta informativna vadnica vključuje sklop najverjetneje zastavljenih vprašanj v intervjujih Git skupaj z njihovimi opisnimi odgovori. Ta vprašanja vam bodo zagotovo pomagala, da se na Gitov intervju uspešno pripravite in ga razbijete.
Ne glede na to, ali ste novinec ali izkušen strokovnjak, vam bodo ta vprašanja o intervjuju o Gitu in podrobni odgovori zagotovo pomagali obogatiti znanje o tej temi in se izkazati tako pri svojem delu kot pri intervjujih.
Začnimo!!
Najpogostejša vprašanja o intervjujih GIT
Spodaj je navedenih nekaj najpogostejših vprašanj za intervju z GIT, ki jih lahko uporabite kot referenco.
V # 1) Kaj je Git?
Odgovor: Git je orodje za porazdeljen nadzor nad različicami. Združljiv je z porazdeljenimi nelinearnimi poteki dela, saj ponuja zagotavljanje podatkov za izdelavo kakovostne programske opreme.
Git je brezplačen in odprtokoden. Uporablja se lahko za skoraj vse vrste projektov, naj bodo majhni ali veliki. Git je znan po svoji veliki hitrosti in učinkovitosti. Skladišča Git je zelo enostavno najti in dostopati do njih. Zaradi svojih nekaterih lastnosti je Git zelo prilagodljiv, varen in združljiv z vašim sistemom.
V # 2) Kaj je porazdeljeni sistem za nadzor različic?
Odgovor: Razdeljeni VCS je sistem, ki ni odvisen od osrednjega strežnika, da hrani projektno datoteko in vse njene različice. V distribuiranem VCS dobi vsak sodelavec ali razvijalec lokalno kopijo glavnega repozitorija, kar se imenuje klon.

(slika vir )
Kot lahko vidite na zgornjem diagramu, vsak sodelavec vzdržuje lokalno skladišče na svojih lokalnih računalnikih. Lokalne repozitorije lahko urejajo in posodabljajo brez težav.
Z operacijo vlečenja lahko razvijalec posodobi svoj lokalni repozitorij z najnovejšimi spremembami iz osrednjega strežnika. Z uporabo potisne operacije lahko pošljejo svoje spremembe iz lokalnega repozitorija na osrednji strežnik.
V # 3) Kdo je ustvaril Git?
Odgovor: Git je leta 2005 ustvaril Linus Torvalds za razvoj jedra Linuxa.
V # 4) Kateri jezik se uporablja v Gitu?
Odgovor: C je osnovni programski jezik, v katerem je napisan Git. Jezik C omogoča Git hiter, saj se izogiba režijskim stroškom, povezanim z drugimi programskimi jeziki na visoki ravni.
V # 5) Katere so prednosti / glavne značilnosti Gita?
Odgovor: Spodaj so navedeni različni f jedi Gita.
(i) Brezplačna in odprta koda:
Git je izdan na podlagi odprtokodne licence GPL (General Public License). Za uporabo Gita vam ni treba plačati ničesar.

To je popolnoma brezplačno. Ker je odprtokodna, lahko izvorno kodo spremenite glede na svoje potrebe.
(ii) Hitrost:
Ker se za izvajanje vseh dejanj ne želite povezati z nobenim omrežjem, vse naloge izvede hitro. Pridobivanje zgodovine različic iz lokalno shranjenega skladišča je lahko stokrat hitrejše kot pridobivanje iz oddaljenega strežnika.

Git je napisan v jeziku C, ki je osnovni programski jezik, ki se izogiba režijskim stroškom, povezanim z drugimi jeziki na visoki ravni.
(iii) razširljivo:
Git je zelo razširljiv. Če se torej število sodelavcev v prihodnjem času poveča, potem lahko Git to spremembo zlahka sprejme.

Kljub temu, da Git predstavlja celotno skladišče, so podatki, ki jih hranimo na strani odjemalca, zelo majhni, saj Git stisne celotne obsežne podatke s pomočjo tehnike stiskanja brez izgub.
(iv) Zanesljivo:
Ker ima vsak sodelavec lasten lokalni repozitorij, lahko v primeru sesutja sistema izgubljene podatke povrne iz katerega koli lokalnega repozitorija. Ves čas boste imeli varnostno kopijo vseh datotek.

(v) Varno:
Git uporablja SHA1 (Secure Hash Function) za poimenovanje in prepoznavanje predmetov v svojem skladišču. Vsak artefakt in predajo se med checkout-om sešteje in obnovi s pomočjo kontrolne vsote.

Zgodovina Gita se shrani na način, da se ID določene različice (zaveza v smislu Git) opira na celotno zgodovino razvoja, ki teče do te odobritve. Ko je različica datoteke potisnjena v Git, je ni mogoče spremeniti, ne da bi jo opazili.
(vi) ekonomično:
V primeru centraliziranega sistema za nadzor različic mora biti osrednji strežnik dovolj močan, da lahko upošteva zahteve celotne ekipe. To ni težava za manjše ekipe, vendar pa se s širitvijo ekipe strojne omejitve strežnika lahko ovirajo pri delovanju.

V primeru porazdeljenih sistemov za nadzor različic, kot je Git, člani ekipe ne zahtevajo interakcije s strežnikom, ko pričakujejo, kdaj bodo morali pritiskati ali vleči spremembe. Vsa težka dviganja se zgodijo na koncu odjemalca, zato je strežniška strojna oprema vsekakor lahko povsem preprosta.
(vii) podpira nelinearni razvoj:
Git omogoča hitro razvejanje in združevanje ter vsebuje posebna orodja za načrtovanje in prehod skozi nelinearno zgodovino razvoja. Osnovni pojem v Gitu je, da bo sprememba pogosteje združena, kot je zapisana, saj je poslana različnim pregledovalcem.

Git Branches so izjemno lahki. Podružnica v Gitu se nanaša samo na en prevzem. Popolno strukturo vej je mogoče ustvariti s pomočjo nadrejenih prevzemov.
(viii) Preprosto razvejanje:
Upravljanje podružnic prek Gita je zelo enostavno in enostavno. Za ustvarjanje, brisanje in združevanje vej potrebuje le nekaj jiffijev. Podružnice funkcij dajejo izolirano okolje vsaki spremembi vaše kode.

Ko mora razvijalec začeti nekaj delati, ne glede na velikost dela, ustvari novo vejo. To zagotavlja, da glavna veja nenehno hrani kodo kakovosti proizvodnje.
(ix) Porazdeljen razvoj:
Git vsakemu razvijalcu zagotovi lokalno kopijo celotne zgodovine razvoja, spremembe pa se klonirajo iz enega takega repozitorija v drugega. Te spremembe so uvedene kot dodane razvojne veje in jih je mogoče združiti na enak način kot lokalno razvite podružnice.

(x) Združljivost s sedanjimi sistemi ali protokolom:
Repozitorije je mogoče objaviti prek protokola HTTP, FTP ali Git na vrhu navadne vtičnice ali ssh.

V # 6) Kako ustvarite repozitorij v Gitu?
Odgovor: Če želite ustvariti repozitorij, morate ustvariti imenik za projekt, če še ne obstaja, in nato preprosto izvesti ukaz “ git init '. Z izvajanjem tega ukaza bo v imeniku projekta ustvarjen imenik .git, tj. Zdaj se je vaš imenik projekta spremenil v repozitorij Git.
V # 7) Kaj je imenik .git?
Odgovor: Ko ustvarite repozitorij, boste v njem našli imenik .git. Ta imenik .git vsebuje vse metapodatke repozitorija in vzdržuje evidenco vseh sprememb datotek v vašem repozitoriju, tako da vodi zgodovino odobritev.
Vse informacije o zavezah, kavljih, sklicih, zbirkah podatkov objektov, naslovih oddaljenih skladišč itd. Se hranijo v tej mapi. To je najpomembnejši del Gita. Ko klonirate katero koli repozitorij Git na svojem lokalnem računalniku, je ta .git imenik, ki se dejansko kopira.
V # 8) Kaj se zgodi, če se imenik .git izbriše?
Odgovor: Če se imenik .git / izbriše, boste izgubili zgodovino svojega projekta. Repozitorij ne bo več pod nadzorom različic.
V # 9) Kateri ukaz se uporablja za pisanje sporočila o objavi v Gitu?
Odgovor: Ukaz, ki se uporablja za posredovanje sporočila git commit je git commit -m “sporočilo o prevzemu”. Zastava m se uporablja za posredovanje sporočila o objavi.
V # 10) Kaj je golo skladišče Git? V čem se razlikuje od običajnega / negolega skladišča Git?
Odgovor: Repozitoriji, ki so ustvarjeni z git init ukaz so standardna / neobdelana skladišča Git.
V zgornji mapi takšnega skladišča boste našli dve stvari:
- Podimenik .git, ki hrani vse metapodatke in evidenco zgodovine vašega repoja.
- Delovno drevo.
Repozitoriji, ki so ustvarjeni z uporabo git init –bare ukazi so znani kot gola skladišča Git. Uporabljajo se predvsem za skupno rabo. Ne vsebujejo nobenega delujočega drevesa. Zgodovino revizij vašega skladišča git hranijo v korenski mapi, namesto da bi jo imeli v podmapi .git.
Vsebuje samo gole podatke o repozitoriju. Tako se golo skladišče Git razlikuje od običajnega skladišča Git. Golo skladišče tudi nima privzetega daljinskega upravljalnika porekla repozitorij, saj služi kot izvorno repozitorij za več oddaljenih uporabnikov.
Ker golo repozitorij ne vsebuje nobenega delovnega prostora, git push in git pull ukazi ne delujejo v golem repo. Ni vam treba posredovati nobenih sprememb v goli repo.
V # 11) Omenite nekaj storitev gostovanja repozitorija Git.
Odgovor:
- Github
- Pikacode
- Gitlab
- Microsoft VSTS
- BitBucket
- GitEnterprise
- SourceForge
- Vzletna ploščad
- Izvedite
- Fižolovo steblo
- Izgleda
V # 12) Navedite nekaj osnovnih operacij v Gitu.
Odgovor: Nekatere osnovne operacije v Gitu vključujejo:
- Inicializirajte
- Dodaj
- Zaveži se
- Potisni
- Vleči
V # 13) Poimenujte nekaj naprednih operacij v Gitu.
Odgovor: Nekaj naprednih operacij v Gitu je:
- Razvejanje
- Združevanje
- Preoblikovanje
V # 14) Kako boste razlikovali med Git in SVN?
Odgovor: Git je porazdeljeni nadzor različic, medtem ko je SVN centraliziran. To vodi do številnih razlik med obema glede njihovih lastnosti in funkcionalnosti.
| Pojdi | SVN | |
|---|---|---|
| Vsebina | Kriptografsko razpršitev SHA-1. | Brez zgoščene vsebine. |
| Arhitektura strežnika | Računalnik, na katerem je nameščen vaš Git, deluje kot odjemalec in strežnik. Vsak razvijalec ima v svojih računalnikih lokalno kopijo celotne zgodovine različic projekta. Git spremembe se pojavljajo lokalno. Zato razvijalcu ni treba biti ves čas povezan z omrežjem. Samo za potisne in vlečne operacije bi razvijalci potrebovali internetno povezavo za povezavo z oddaljenim strežnikom. | SVN ima ločen odjemalec in strežnik. Lokalno ni na voljo. Za izvedbo kakršnega koli dejanja boste morali biti povezani v omrežje. Tudi v SVN, ker je vse centralizirano, tako da bo v primeru, da se osrednji strežnik zruši ali poškodovan, pri projektu prišlo do celotne izgube podatkov. |
| Razvejanje | Git je zaradi učinkovitega modela razvejanja večinoma raje razvijalcem. Git veje so lahke, a močne. So le sklici na določeno zavezo. Podružnico lahko kadar koli ustvarite, izbrišete ali spremenite brez vpliva na druge zaveze. Torej so vilice, veje in združitve z Gitom enostavne. | SVN ima zapleten model razvejanja in združevanja, zato je njegovo upravljanje dolgotrajno. V SVN se veje generirajo kot imeniki znotraj repozitorija. Ta struktura imenikov je v glavnem problematična. Ko je veja pripravljena, se morate vrniti v prtljažnik. Ker niste edini, ki združuje spremembe, zato različice tovornjaka morda ne bomo šteli za podružnice razvijalcev. To lahko privede do konfliktov, manjkajočih datotek in zmedenih sprememb v vaši veji. |
| Nadzor dostopa | Git domneva, da bodo imeli vsi sodelujoči enaka dovoljenja. | SVN vam omogoča, da na vsaki ravni in ravni imenika določite kontrolnike za dostop do branja / pisanja. |
| Preglednost | V Gitu spremembe sledijo na ravni skladišča. Git se ne obremenjuje preveč z ohranjanjem natančne zgodovine sprememb, ki so bile narejene v vašem skladišču. Razdeljena narava Gita omogoča, da kateri koli sodelavec spremeni kateri koli del zgodovine svojega lokalnega repoja. Z Gitom je težko ugotoviti resnično zgodovino sprememb v vaši kodni bazi. Na primer, izgubili boste zgodovino po preimenovanju v Git. | V SVN spremembam sledimo na ravni datoteke. SVN ohranja precej dosledno in natančno zgodovino sprememb. Obnovite lahko popolnoma enake podatke, kot so bili kadar koli v preteklosti. Zgodovina SVN je trajna in vedno določena. |
| Zahteve za shranjevanje | Git in SVN shranjujeta podatke na enak način. Poraba prostora na disku je za oba enaka. Razlika je le v primeru binarnih datotek. Git ni prijazen do binarnih datotek. Ne more obvladati shranjevanja velikih binarnih datotek. | SVN ima algoritem stiskanja xDelta, ki deluje tako za binarne kot besedilne datoteke. Tako lahko SVN shrani velike binarne datoteke v razmeroma manjši prostor kot Git. |
| Uporabnost | Tako Git kot SVN uporabljata ukazno vrstico kot primarni uporabniški vmesnik. Git v veliki meri uporabljajo razvijalci / tehnični uporabniki. | SVN v veliki meri uporabljajo netehnični uporabniki, saj se je lažje učiti. |
| Globalna revizijska številka | Ni na voljo | Na voljo |
V # 15) Kako boste razlikovali med Git in GitHub?
Odgovor: Git je visokokakovosten sistem za nadzor različic. Razdeljen je v naravi in je uporabljen za sledenje spremembam izvorne kode med razvojem programske opreme. Ima edinstven model razvejanja, ki pomaga pri sinhronizaciji dela med razvijalci in sledenju spremembam v vseh datotekah.
Primarni cilji Gita so hitrost, celovitost podatkov, zagotavljanje podpore porazdeljenim, nelinearnim delovnim tokom. Git je nameščen in vzdrževan na lokalnem računalniku namesto v oblaku.
GitHub je storitev gostovanja repozitorija Git v oblaku, ki združuje ekipe. Omogoča vam spletni GUI ter nadzor dostopa in številne funkcije sodelovanja, ki so temeljna orodja za upravljanje nalog za vsak projekt.
GitHub je tudi odprtokodna, tj.koda se hrani na centraliziranem strežniku in do nje lahko dostopajo vsi.
V # 16) Kaj je konflikt v Gitu in kako ga rešiti?
Odgovor: Git ima funkcijo samodejnega združevanja, ki samostojno obravnava zaveze združevanja, pod pogojem, da so se spremembe kode zgodile v različnih vrsticah in v različnih datotekah.
V primeru, da tekmujemo za zaveze, pri katerih pride do sprememb v istih vrsticah kode datoteke ali pa je bila datoteka izbrisana v eni veji, vendar obstaja in spremenjena v drugi, Git ne more samodejno razrešiti razlik in s tem sproži konflikt med spajanjem.
V takih primerih potrebuje vašo pomoč pri odločitvi, katero kodo vključiti in katero kodo zavreči pri končni združitvi.
Do konflikta med spajanjem lahko pride med združevanjem veje, preoblikovanjem podružnice ali prevzemom obveznosti. Ko zazna konflikt, Git poudari konfliktno območje in vas prosi, da ga rešite. Ko je spor razrešen, lahko nadaljujete z združitvijo.
Sledite spodnjim korakom za razrešitev konkurenčnega konflikta pri združitvi sprememb vrstic:
- Odprite Git Bash (ukazna vrstica Git).
- Uporaba CD ukaz, da gremo v lokalno shrambo Git, ki ima konflikt spajanja.
- Uporabi git status ukaz za izdelavo seznama datotek, na katere vpliva konflikt spajanja.
- Odprite urejevalnik besedila, ki ga uporabljate, in se pomaknite do datoteke, ki ima konflikte spajanja.
- Če si želite ogledati začetek konflikta združevanja v svoji datoteki, poiščite oznako konflikta v dokumentu<<<<<<<. At the point when you open the file, you’ll observe the modifications from the HEAD or base branch after the line <<<<<<>>>>>> IME PODRUŽNICE.
- Izberite, če želite obdržati samo spremembe svoje podružnice, samo obdržati spremembe druge podružnice ali narediti novo spremembo, ki lahko vključuje spremembe obeh podružnic. Izbrišite oznake konfliktov<<<<<<>>>>>> in izvedite spremembe, ki jih potrebujete pri končni združitvi.
- Uporaba git dodaja. ukaz za dodajanje ali uprizoritev sprememb.
- Na koncu uporabite git commit -m “sporočilo” ukaz za odobritev sprememb s komentarjem.
Če želite razrešiti spor glede spajanja odstranjenih datotek, sledite spodnjim korakom:
- Odprite Git Bash (ukazna vrstica Git).
- Uporaba CD ukaz, da gremo v lokalno shrambo Git, ki ima konflikt spajanja.
- Uporabi git status ukaz za izdelavo seznama datotek, na katere vpliva konflikt spajanja.
- Odprite urejevalnik besedila, ki ga uporabljate, in se pomaknite do datoteke, ki ima konflikte spajanja.
- Izberite, ali želite odstraniti odstranjeno datoteko. V urejevalniku besedil lahko preverite najnovejše spremembe v odstranjeni datoteki.
- Uporaba git add ukaz za dodajanje odstranjene datoteke nazaj v odlagališče. Ali pa uporabite pojdi rm ukaz za odstranitev datoteke iz skladišča.
- Na koncu uporabite git commit -m “sporočilo” ukaz za odobritev sprememb s komentarjem.
V # 17) Kako boste popravili prekinjen prevzem?
Odgovor: Če želite popraviti pokvarjeno objavo ali spremeniti zadnjo, je najprimernejša metoda z uporabo ukaza “ git commit -amend ' .
Omogoča vam kombiniranje postopnih sprememb s prejšnjim prevzemom kot alternativo za ustvarjanje povsem novega sprejema. To nadomešča najnovejši prevzem s spremenjenim prevzemom.

(slika vir )
S tem ukazom lahko uredite tudi prejšnje sporočilo o odobritvi, ne da bi spremenili njegov posnetek.
V # 18) Kakšna je uporaba git instaweb?
Odgovor: To je skript, s pomočjo katerega lahko v spletnem brskalniku takoj brskate po svojem delujočem skladišču Git.
Ta skript nastavi gitweb in spletni strežnik za brskanje po lokalnem repozitoriju. Samodejno usmerja spletni brskalnik in zažene spletni strežnik prek vmesnika v vaš lokalni repozitorij.
V # 19) Kaj je git is-tree?
Odgovor: 'Git is-tree' označuje drevesni objekt, ki vsebuje način in ime vseh elementov, skupaj z vrednostjo bloka ali drevesa SHA-1.
V # 20) Ali obstaja način za povrnitev git zaveze, ki je bila že potisnjena in objavljena v javnosti?
Odgovor: Da, za odpravo ali razveljavitev slabe zaveze lahko na podlagi scenarija uporabimo dva pristopa.
To so:
- Zelo očiten način je nov prevzem, kjer odstranite slabo datoteko ali odpravite napake v njej. Ko končate, ga lahko potisnete v oddaljeno skladišče.
- Drug pristop je ustvariti novo odobritev za razveljavitev vseh sprememb, ki so bile izvedene v prejšnjem slabem sprejemu. To lahko storite z ukazom git revert - “ git revert '
V # 21) Kako boste razlikovali med git pull in git fetch?
Odgovor: Git pull ukaz potegne vse nove zaveze iz določene veje v osrednjem repozitoriju in posodobi ciljno vejo v vašem lokalnem repozitoriju.
Git fetch cilja tudi na isto stvar, vendar je njegova osnovna funkcionalnost nekoliko drugačna. Ko izvedete git fetch, bodo vsi novi predaji iz določene veje potegnjeni v vaše centralno repozitorij in te spremembe bodo shranjene v novi veji v vašem lokalnem repozitoriju. To se imenuje pridobljena veja.
Če želite te spremembe videti v ciljni veji, morate izvesti a pojdi združiti po git fetch. Ciljna veja bo posodobljena z najnovejšimi spremembami šele potem, ko jo združimo s pridobljeno vejo.
Torej, git pull posodobi lokalno vejo s svojo oddaljeno različico, medtem ko git fetch ne spremeni neposredno vaše lokalne veje ali delovne kopije pod referenc / glav. Git fetch lahko uporabite za posodobitev vaših vej za oddaljeno sledenje pod refs / daljinski upravljalci //.
Z enostavnimi besedami git pull je enako git fetch, čemur sledi git merge .
V # 22) Kakšna je uporaba območja uprizoritve ali indeksiranja v Gitu?
Odgovor: Z Gitove perspektive obstajajo tri področja, na katerih je mogoče obdržati spremembe datotek, tj. Delovni imenik, odrsko območje in skladišče.

Najprej spremenite delovni imenik projekta, ki je shranjen v računalniškem datotečnem sistemu. Vse spremembe ostanejo tukaj, dokler jih ne dodate v vmesno območje, imenovano uprizoritveno območje.
Spremembe lahko izvedete z izvajanjem git add. ukaz. To uprizoritveno območje vam omogoča predogled naslednjega prevzema in vam v bistvu omogoča natančno nastavitev vaših prevzemov. Spremembe lahko dodajate ali odstranjujete v območju za uprizoritev, dokler niste zadovoljni z različico, ki jo nameravate odobriti.
Ko preverite spremembe in se odjavite s spremenjenega odra, lahko spremembe dokončno odobrite. Po odobritvi gredo v lokalno repozitorij, tj. V imenik .git / objects.
Če uporabljate Git GUI, boste videli možnost postopnega spreminjanja sprememb. Na spodnjem posnetku zaslona je datoteka sample.txt pod območjem nestalnih sprememb, kar pomeni, da je v vašem delovnem imeniku.
Datoteko lahko izberete in kliknete na ‘stage changed’, nato pa bo premaknjena v odrsko območje. Na primer , datoteka hello.txt je prisotna v spremenjenem (zavezujočem) območju. Svoje spremembe lahko preverite in se nato odjavite, čemur sledi objava.

Postopnost se imenuje tudi indeksiranje, ker git vzdržuje indeksno datoteko, da spremlja spremembe vaših datotek na teh treh področjih. Urejene datoteke so trenutno v vašem indeksu.
Ko dodate spremembe na odrsko območje, se informacije v indeksu posodobijo. Ko se zavežete, je dejansko tisto, kar je v indeksu, ki se zaveže, in ne tisto, kar je v delovnem imeniku. Lahko uporabite git status ukaz, da vidite, kaj je v indeksu.
V # 23) Kaj je Git Stash?
Odgovor: Sklad GIT zajame trenutno stanje delovnega imenika in indeksa ter ga shrani v sklad za prihodnjo uporabo. Razveljavi neizvedene spremembe (tako postopne kot tudi po korakih) iz vašega delovnega imenika in vam vrne čisto delujoče drevo.
Zdaj lahko delate na nečem drugem in ko se vrnete, lahko te spremembe ponovno uporabite. Torej, če želite preklopiti iz enega konteksta v drugega, ne da bi pri tem izgubili trenutne spremembe, lahko uporabite shranjevanje.
V pomoč je pri hitrem preklapljanju konteksta, kjer ste na sredini spremembe kode, ki je zdaj ne želite prevzeti ali razveljaviti in imate še nekaj za delo. Ukaz za uporabo je git stash.
V # 24) Kaj je kapljica Git Stash?
Odgovor: Ko ne potrebujete več določenega skrinjice, ga lahko odstranite z izvajanjem git stash drop ukaz . Če želite iz skladišča naenkrat odstraniti vse skrivnosti, lahko zaženete ukaz git stash clear .
V # 25) Kaj je Git stash apply? V čem se razlikuje od Git stash popa?
Odgovor: Oba ukaza se uporabljata za ponovno uporabo skritih sprememb in začetek dela od tam, kjer ste ostali.
V git stash velja ukaz, bodo spremembe ponovno uporabljene v vaši delovni kopiji in bodo tudi shranjene v zalogovniku. Ta ukaz lahko uporabite, kadar želite uporabiti enake shranjene spremembe v več vejah.
V git stash pop spremembe se odstranijo iz zaloge in se ponovno uporabijo v delovni kopiji.
V # 26) Kakšna je uporaba ukaza git clone?
Odgovor: The klon git ukaz ustvari kopijo obstoječega osrednjega skladišča Git v vašem lokalnem računalniku.
V # 27) Kdaj se uporablja ukaz git config?
Odgovor: The git config ukaz se uporablja za nastavitev možnosti konfiguracije za vašo namestitev Git.
Na primer ko prenesete Git, morate pod ukazi za konfiguracijo uporabiti uporabniško ime in predati e-poštni naslov v Gitu:
$ git config –global user.name “”
$ git config –global user.email “”
Torej lahko s pomočjo tega ukaza nastavimo predvsem stvari, kot je obnašanje skladišča, uporabniške informacije in nastavitve.
V # 28) Kako boste ugotovili, ali je veja že združena v glavno?
Odgovor:
Z izvajanjem spodnjih ukazov lahko spoznate stanje združevanja vej:
- git branch - združeni mojster: Tu bodo navedene vse veje, ki so bile preimenovane v glavno.
- git podružnica - združeno: Tu bodo navedene vse veje, ki so bile združene v HEAD.
- git-podružnica - ni združeno: Tu bodo navedene vse veje, ki še niso združene.
Ta ukaz privzeto pove samo stanje združitve lokalnih vej. Če želite vedeti o lokalnem in oddaljenem stanju združevanja podružnic, lahko uporabite -do zastavo. Če želite preveriti samo oddaljene veje, lahko uporabite -r zastavo.
V # 29) Kaj so kljuke v Gitu?
Odgovor: Kavlji Git so določeni skripti, ki jih Git zažene pred ali po dogodku, kot je objava, potiskanje, posodabljanje ali sprejemanje. Mapo 'kavlji' najdete v imeniku .git v vašem lokalnem repozitoriju. Tu boste našli vdelane skripte pred prevzemom, po prevzemu, pred potiskom, po potisku.
Ti skripti se izvajajo lokalno pred ali po dogodku. Te skripte lahko tudi spremenite glede na vaše potrebe in Git bo skript izvedel, ko pride do določenega dogodka.
V # 30) Kakšna je uporaba git fork? V čem se vilice razlikujejo od kloniranja?
Odgovor: Razcepiti projekt pomeni ustvariti oddaljeno kopijo izvirnega repozitorija na strani strežnika. To kopijo lahko preimenujete in začnete z novim projektom, ne da bi to vplivalo na prvotni projekt. Vilice niso osrednji koncept Gita.
Delovanje vilic uporablja Git workflow in ta ideja obstaja dlje za brezplačno in odprtokodno programsko opremo, kot je GitHub. Na splošno, ko enkrat razcvetite projekt, redko znova prispevate k nadrejenemu projektu.
Na primer OpenBSD je podoben Unixu odprtokodni operacijski sistem, ki je bil razvit s forkingom NetBSD, ki je še en Unix-ov odprtokodni OS.
Vendar pa v vilici obstaja neposredna povezava med vašo razcepljeno kopijo in izvirnim skladiščem. Kadar koli lahko z izvlečnimi zahtevami prispevate nazaj k prvotnemu projektu.
V razcepljeni kopiji se vsi glavni podatki, kot so kode in datoteke, kopirajo iz prvotnega repozitorija, vendar se veje, zahteve za vlečenje in druge funkcije ne kopirajo. Forking je idealen način za odprtokodno sodelovanje.
Kloniranje je v bistvu koncept Git. Klon je lokalna kopija katerega koli oddaljenega repozitorija. Ko kloniramo repozitorij, se celotno izvorno repozitorij skupaj z njegovo zgodovino in vejami kopira v naš lokalni stroj.
Za razliko od forkinga ni neposredne povezave med kloniranim skladiščem in prvotnim oddaljenim skladiščem. Če želite povleči zahteve in nadaljevati nazaj do prvotnega projekta, se morate dodati kot sodelavec v prvotnem repozitoriju.
Kloniranje je tudi odličen način za izdelavo varnostne kopije izvirnega repozitorija, saj ima klonirana kopija tudi vso zgodovino odobritev.
V # 31) Kako boste ugotovili, katere datoteke so bile spremenjene v določenem zapisu Git?
Odgovor: Z uporabo zgoščene vrednosti določenega predaja lahko izvedete spodnji ukaz, da dobite seznam datotek, ki so bile spremenjene v določenem predaju:
git diff-tree -r {hash}
Tu bodo navedene vse spremenjene datoteke in tudi datoteke, ki so bile dodane. Oznaka -r se uporablja za naštevanje posameznih datotek skupaj z njihovo potjo, namesto da bi jih strnili v imena korenskih imenikov.
Uporabite lahko tudi spodnji ukaz:
git diff-tree –no-commit-id –name-only -r {hash}
–No-commit-id bo preusmeril zgoščevalne številke odobritve, ki bodo prišle v izhodu. Medtem bo -name izključil poti datotek in dal imena datotek samo v izhodu.
V # 32) Kakšna je razlika med git checkout (ime podružnice) in git checkout -b (ime podružnice)?
Odgovor: Ukaz git checkout (ime podružnice) bo prešel iz ene veje v drugo.
Ukaz git checkout -b (ime podružnice) bo ustvaril novo vejo in jo tudi preusmeril.
V # 33) Kaj je SubGit?
Odgovor: SubGit je orodje, ki se uporablja za SVN to Git Migration. Razvilo ga je podjetje TMate. Pretvori SVN repozitorije v Git in vam omogoča hkratno delo na obeh sistemih. Samodejno sinhronizira SVN z Git.

(slika vir )
S tem orodjem lahko ustvarite SVN || Git ogledalo. SubGit naj bo nameščen na vašem Git strežniku. Zaznal bo vse nastavitve vašega oddaljenega repozitorija SVN, vključno s revizijami SVN, vejami in oznakami, in jih pretvoril v zaveze Git.
Prav tako ohranja zgodovino, vključno s sledenjem spajanju podatkov.
V # 34) Ali lahko obnovite izbrisano vejo v Gitu?
Odgovor: Ja lahko. Če želite obnoviti izbrisano vejo, morate vedeti SHA na vrhu glave. SHA ali hash je edinstven ID, ki ga Git ustvari z vsako operacijo.
Ko izbrišete vejo, se na terminalu prikaže SHA:
Izbrisana veja (je bila)
Za obnovitev izbrisane veje lahko uporabite spodnji ukaz:
git checkout -b
Če ne poznate SHA za objavo na vrhu vaše veje, lahko najprej uporabite pojdi reflog ukaz, da poznate vrednost SHA, in nato uporabite zgornji ukaz checkout, da obnovite svojo vejo.
V # 35) Kaj je git razl ukaz? V čem se razlikuje od git status?
Odgovor: Git razl je večnamenski ukaz, ki ga lahko izvedemo za prikaz razlik med dvema poljubnima predajama, spremembe med delovnim drevesom in zavezo, spremembe med delovnim drevesom in indeksom, spremembe med dvema datotekama, spremembe med indeksom in drevesom itd.
The git status ukaz se uporablja za pregled skladišča. Prikazuje stanje delovnega imenika in uprizoritvenega območja. Na seznamu bodo datoteke, ki so bile uprizorjene, ki niso bile uprizorjene, in datoteke, ki jim ni bilo mogoče slediti.
V # 36) Kaj vsebuje objekt Comm?
Odgovor: Predmet predaja vsebuje zgoščeni objekt drevesa na najvišji ravni, zgoščevalni element nadrejenega zaveza (če obstaja), podatke o avtorju in prevzemu, datum urejanja in sporočilo o prevzemu.
To si lahko ogledate prek git log ukaz.
Primer:

(slika vir )
V # 37) Kaj je git cherry-pick? Kakšni so scenariji, v katerih je mogoče uporabiti git cherry-pick?
Odgovor: Git češnja je močan ukaz za uporabo sprememb, ki jih je uvedel eden ali več obstoječih predaj. Omogoča vam, da izberete prevzem iz ene veje in ga uporabite za drugo.
varen brezplačen pretvornik youtube v mp3
git cherry-pick commitSha je ukaz za nabiranje češenj. commitSha je referenca za objavo.
Ta ukaz lahko uporabite za razveljavitev sprememb. Na primer, če ste se pomotoma zavezali za napačno vejo, potem lahko preverite pravilno vejo in češnjevo izberete, kamor naj sodi.
Uporablja se lahko tudi pri skupinskem sodelovanju. V nekaterih primerih je treba isto kodo deliti med dvema komponentama izdelka. V tem primeru, če je en razvijalec to kodo že napisal, lahko drugi isto izbere.
Nabiranje češenj je koristno tudi pri hitrih popravkih napak, kjer lahko objavo popravka poberemo neposredno v glavno vejo, da čim prej odpravimo težavo.
V # 38) Za kaj se uporablja 'git reset'? Kakšen je privzeti način tega ukaza?
Odgovor: Ponastavitev Gita je močan ukaz za razveljavitev lokalnih sprememb stanja repozitorija Git. Ta ukaz ponastavi trenutno HEAD na določeno stopnjo.
Indeks in delovni imenik ponastavi na stanje zadnjega urejanja. Git reset ima tri načine, to so mehki, trdi in mešani. Privzeti način delovanja je mešan.
V # 39) Kakšna je razlika med „HEAD“, „working tree“ in „index“?
Odgovor: Delovno drevo ali delovni prostor je imenik, ki vsebuje izvorne datoteke, s katerimi trenutno delate.
Indeks je pripravljalno območje v Gitu, kjer se pripravljajo zaveze. Leži med predajo in vašim delovnim drevesom. Git index je ena velika binarna datoteka, ki vključuje vse datoteke v trenutni veji, njihova imena, kontrolne vsote sha1 in časovne žige.
Ta datoteka je prisotna na /.git/index. HEAD je sklic ali kazalec na zadnji prevzem v trenutni veji prevzema.
V # 40) Kakšna je razlika med ponovnim zbiranjem in spajanjem? Kdaj bi morali prerazporediti in kdaj združiti?
Odgovor: Ukazi za rebase in merge se uporabljajo za integracijo sprememb iz ene veje v drugo, vendar na drugačen način.
Kot je razvidno iz spodnjih dveh slik, predpostavimo, da imate zaveze (to je pred spajanjem / ponovnim zbiranjem). Po združitvi boste rezultat dobili kot kombinacijo predaj. Poveže zgodovino obeh vej in v veji funkcije ustvari nov 'prevzem združitve'.
Po drugi strani pa bo rebase premaknil celotno vejo značilnosti, da se začne na vrhu glavne veje.

(slika vir )
Obveze bodo videti tako:

Preoblikovanje ni priporočljivo za javne podružnice, saj ustvarja neskladna skladišča. Vendar je ponovna ocena ugodna možnost za zasebne podružnice / posamezne razvijalce. Za način veje na funkcijo ni zelo primeren. Če pa imate model podružnice na razvijalca, potem ponovna podlaga ne škodi.
Tudi rebase je uničujoča operacija, zato mora biti vaša razvojna skupina dovolj usposobljena za pravilno uporabo. V nasprotnem primeru lahko predano delo izgubite.
Poleg tega je razveljavitev združitve lažje kot razveljavitev ponovne zbirke podatkov. Torej, če veste, da obstajajo možnosti za povrnitev, uporabite združitev.
Merge vztraja v zgodovini, kakršna je, medtem ko prenovitev zgodovine prepiše. Če želite torej zgodovino videti v celoti, kakršna se je zgodila, uporabite spajanje.
V # 41) Kakšna je sintaksa za preoblikovanje?
Odgovor: Sintaksa za ukaz rebase je git rebase (new-commit)
V # 42) Kako boste datoteko odstranili iz Gita, ne da bi jo dejansko odstranili iz lokalnega datotečnega sistema?
Odgovor: Za to lahko uporabite možnost ‘cached’:
git rm -rf –cached $ FILES
Ta ukaz bo datoteke odstranil iz skladišča, ne da bi jih izbrisal z diska.
V # 43) Kakšen je pogost vzorec razvejanja v Gitu?
Odgovor: Skupni vzorec razvejanja temelji na git-toku. Ima dve glavni veji, tj. Master in razvoj.
- Glavna veja vsebuje proizvodno kodo. Vsa razvojna koda je v določenem trenutku združena v glavno vejo.
- Razvojna veja vsebuje predprodukcijsko kodo. Ko so funkcije dokončane, se združijo z glavno vejo, običajno prek cevovoda CI / CD.
Ta model ima tudi nekaj podpornih vej, ki se uporabljajo med razvojnim ciklom:
- Glavne podružnice / Tema podružnice: Uporabljajo se za razvoj novih funkcij za prihodnje izdaje. Lahko se odcepi od razvojne veje in jo je treba združiti nazaj v razvojno vejo. Na splošno te veje obstajajo samo v skladiščih razvijalcev in ne v izvoru.
- Podružnice hitrih popravkov: Uporabljajo se za nenačrtovano izdajo, ko je treba takoj odpraviti kakršno koli kritično napako v različici v živo. Lahko se odcepijo od glavnega in jih je treba ponovno združiti v razvojne in master.
- Podružnice izdaje: Uporabljajo se za pripravo nove produkcije. Podružnica izdaje vam omogoča manjše popravke napak in pripravo metapodatkov za izdajo. Lahko se odcepijo od razvoja in jih je treba znova združiti v master in razvijati.
Zaključek
Spustili smo se skozi pomembna vprašanja, ki se na splošno postavljajo med intervjuji Git v tej vadnici.
To vam ne bo pomagalo samo, da se pripravite na prihajajoče intervjuje, temveč vam bo tudi razjasnilo koncepte git.
Vse najboljše za vaš intervju!
Priporočeno branje
- Vprašanja in odgovori za intervju
- Nekaj zanimivih vprašanj za preskušanje programske opreme
- Najboljših 40 programerskih vprašanj in odgovorov za programiranje
- 40 najbolj priljubljenih vprašanj in odgovorov za J2EE, ki bi jih morali prebrati
- Vprašanja in odgovori za preizkušanje ETL
- 20+ najpogostejših vprašanj in odgovorov na izhodni intervju
- Najpogostejša vprašanja o intervjujih za obrazce in poročila Oracle
- Nekaj zapletenih ročnih preizkusov Vprašanja in odgovori