top 40 git interview questions
Najpopularnija pitanja o intervjuu za GIT s odgovorima i primjerima:
Ovaj informativni vodič uključuje set najvjerojatnije postavljenih pitanja u Git-ovim intervjuima, zajedno s njihovim opisnim odgovorima. Ova će vam pitanja zasigurno pomoći da se uspješno pripremite i razbijete bilo koji intervju za Git.
Bez obzira jeste li početnik ili iskusan profesionalac, ova pitanja za intervju za Git i detaljni odgovori definitivno će vam pomoći da obogatite svoje znanje o toj temi i istaknete se u svom poslu, kao i u intervjuima.
Započnimo!!
Najčešća pitanja o intervjuu za GIT
U nastavku su navedena neka od najčešće postavljanih pitanja za GIT intervju za vašu referencu.
P # 1) Što je Git?
Odgovor: Git je alat za distribuiranu kontrolu verzija. Kompatibilan je s distribuiranim nelinearnim tijekovima rada jer nudi sigurnost podataka za izgradnju softvera dobre kvalitete.
Git je besplatan i otvoren. Može se koristiti za gotovo sve vrste projekata, bili oni mali ili veliki. Git je poznat po velikoj brzini i učinkovitosti. Git spremišta vrlo je lako pronaći i pristupiti im. Zbog svojih određenih značajki, Git je vrlo fleksibilan, siguran i kompatibilan s vašim sustavom.
P # 2) Što je distribuirani sustav za kontrolu verzija?
Odgovor: Distribuirani VCS je sustav koji ne ovisi o središnjem poslužitelju da zadrži datoteku projekta i sve njegove verzije. U distribuiranom VCS-u svaki suradnik ili programer dobiva lokalnu kopiju glavnog spremišta i to se naziva klon.
(slika izvor )
Kao što možete vidjeti na gornjem dijagramu, svaki suradnik održava lokalno spremište na svojim lokalnim računalima. Oni mogu urezivati i ažurirati lokalna spremišta bez ikakvih problema.
Koristeći operaciju povlačenja, programer može ažurirati svoje lokalno spremište najnovijim promjenama sa središnjeg poslužitelja. Korištenjem push operacije mogu svoje promjene poslati iz lokalnog spremišta na središnji poslužitelj.
P # 3) Tko je stvorio Git?
Odgovor: Git je stvorio Linus Torvalds 2005. godine na putu da razvije Linux kernel.
P # 4) Koji se jezik koristi u Gitu?
Odgovor: C je osnovni programski jezik u kojem je napisan Git. C jezik čini Git brz izbjegavanjem režijskih troškova izvršavanja povezanih s drugim programskim jezicima visoke razine.
P # 5) Koje su prednosti / glavne značajke Gita?
Odgovor: U nastavku su navedeni razni f jesti Gita.
(i) Besplatni i otvoreni izvor:
Git se izdaje pod GPL-ovom (General Public License) licencom otvorenog koda. Da biste koristili Git, ne morate ništa platiti.
To je apsolutno besplatno. Budući da je open-source, izvorni kod možete mijenjati prema svojim potrebama.
(ii) Brzina:
Budući da se za izvršavanje svih radnji ne morate povezati s bilo kojom mrežom, ona sve zadatke izvršava brzo. Dobivanje povijesti verzija iz lokalno pohranjenog spremišta može biti sto puta brže od dobivanja s udaljenog poslužitelja.
Git je napisan na jeziku C, koji je osnovni programski jezik koji izbjegava režijske troškove tijekom izvođenja povezane s drugim jezicima visoke razine.
(iii) skalabilno:
Git je vrlo skalabilan. Dakle, ako se broj suradnika poveća u nadolazećem vremenu, tada Git može lako prilagoditi ovu promjenu.
Unatoč činjenici da Git predstavlja cjelokupno spremište, podaci koji se čuvaju na strani klijenta vrlo su mali jer Git komprimira čitave goleme podatke tehnikom kompresije bez gubitaka.
(iv) Pouzdano:
Kako svaki suradnik ima svoje lokalno spremište, u slučajevima pada sustava, izgubljeni podaci mogu se oporaviti iz bilo kojeg lokalnog spremišta. U svakom ćete trenutku imati sigurnosnu kopiju svih datoteka.
(v) Sigurno:
Git koristi SHA1 (funkciju sigurnog raspršivanja) za imenovanje i identificiranje objekata unutar svog spremišta. Svaki se artefakt i predaja provjeravaju i obnavljaju kroz njegovu kontrolnu sumu tijekom naplate.
Povijest Gita sprema se na način da se ID određene verzije (predavanje u smislu Gita) oslanja na ukupnu povijest razvoja koja teče do tog predavanja. Jednom kada se inačica datoteke gurne u Git, tada je nema načina promijeniti, a da je ne primijete.
(vi) ekonomično:
U slučaju centraliziranog sustava za kontrolu verzija, središnji poslužitelj mora biti dovoljno jak da udovolji zahtjevima cijelog tima. To nije problem za manje timove, no kako se tim proširuje, hardverska ograničenja poslužitelja mogu biti prepreka za izvedbu.
U slučaju distribuiranih sustava za kontrolu verzija poput Gita, članovi tima ne zahtijevaju interakciju s poslužiteljem, kada očekuju da moraju pritisnuti ili povući promjene. Sve teško dizanje događa se na kraju klijenta, tako da se poslužiteljski hardver sigurno može održavati prilično jednostavnim.
(vii) Podržava nelinearni razvoj:
Git omogućuje brzo grananje i spajanje i sadrži određene alate za predviđanje i prelazak nelinearne povijesti razvoja. Osnovni pojam u Gitu jest da će se promjena spajati češće nego što je napisana jer se šalje različitim recenzentima.
Git Branches su izuzetno lagani. Podružnica u Gitu odnosi se samo na jedan predati. Kompletna struktura grane može se stvoriti uz pomoć nadređenih obveza.
(viii) Jednostavno grananje:
Upravljanje poslovnicama putem Gita vrlo je jednostavno i jednostavno. Za stvaranje, brisanje i spajanje grana potrebno je samo nekoliko jiffa. Grane značajki daju izolirano okruženje svakoj promjeni vaše baze koda.
Kada programer zahtijeva da počne raditi na nečemu, bez obzira na veličinu posla, oni stvaraju novu granu. To osigurava da glavna grana stalno ima kôd kvalitete proizvodnje.
(ix) Distribuirani razvoj:
Git svakom programeru pruža lokalnu kopiju cijele povijesti razvoja, plus promjene se kloniraju iz jednog takvog spremišta u drugo. Te se promjene uvode kao dodane razvojne grane i mogu se spojiti na isti način kao lokalno razvijene grane.
(x) Kompatibilnost zajedno sa sadašnjim sustavima ili protokolom:
Spremišta se mogu objaviti putem HTTP-a, FTP-a ili Git protokola povrh obične utičnice ili ssh-a.
P # 6) Kako stvoriti spremište u Gitu?
Odgovor: Da biste stvorili spremište, trebate stvoriti direktorij za projekt ako on već ne postoji, a zatim jednostavno izvršiti naredbu “ git init '. Izvršenjem ove naredbe, unutar direktorija projekta stvorit će se .git direktorij, tj. Sada se vaš direktorij projekta pretvorio u Git spremište.
P # 7) Što je .git direktorij?
Odgovor: Onog trenutka kada stvorite spremište, unutar njega ćete pronaći .git direktorij. Ovaj .git direktorij sadrži sve metapodatke spremišta i održava evidenciju svih promjena izvršenih u datotekama u vašem spremištu, čuvajući povijest urezivanja.
Sve informacije u vezi s obvezama, udicama, preporukama, bazama podataka objekata, adresama udaljenog spremišta itd. Čuvaju se u ovoj mapi. Ovo je najvažniji dio Gita. Kada klonirate bilo koje Git spremište na vašem lokalnom računalu, ovaj .git je direktorij koji se zapravo kopira.
P # 8) Što će se dogoditi ako se .git direktorij izbriše?
Odgovor: Ako se .git / direktorij izbriše, izgubit ćete povijest projekta. Spremište više neće biti pod kontrolom verzija.
P # 9) Koja se naredba koristi za pisanje poruke predavanja u Gitu?
Odgovor: Naredba koja se koristi za prosljeđivanje poruke na git commit je git commit -m “poruka poruke”. Zastava m koristi se za prosljeđivanje poruke urezivanja.
P # 10) Što je golo Git spremište? Po čemu se razlikuje od standardnog / neotkrivenog Git spremišta?
Odgovor: Spremišta koja su stvorena putem git init naredbe su standardna / neotvorena Git spremišta.
U najvišoj mapi takvog spremišta pronaći ćete dvije stvari:
- Podmapa .git koja čuva sve metapodatke i evidenciju povijesti vašeg repo-a.
- Radno stablo.
Spremišta koja su stvorena pomoću git init –bare naredbe poznate su kao gola Git spremišta. Uglavnom se koriste za dijeljenje. Ne sadrže nijedno radno stablo. Oni čuvaju git povijest revizija vašeg spremišta u korijenskoj mapi, umjesto da je imaju u .git podmapi.
Sadrži samo gole podatke o spremištu. Po tome se goli Git spremište razlikuje od standardnog Git spremišta. Također, golo spremište nema zadani daljinski upravljač podrijetlo spremište jer služi kao izvorno spremište za više udaljenih korisnika.
Budući da golo spremište ne sadrži radni prostor, git push i git pull naredbe ne rade preko golog repo-a. Ne morate unijeti nikakve promjene u goli repo.
P # 11) Spomenite neke usluge hostinga Git Repozitorija.
Odgovor:
- Github
- Pikacode
- Gitlab
- Microsoft VSTS
- BitBucket
- GitEnterprise
- SourceForge
- LaunchPad
- Silom
- Grahovo stablo
- Izgleda kao
P # 12) Navedite neke osnovne operacije u Gitu.
Odgovor: Neke osnovne operacije u Gitu uključuju:
- Inicijalizirajte
- Dodati
- Počiniti
- Gurnuti
- Vuci
P # 13) Navedite neke napredne operacije u Gitu.
Odgovor: Neke napredne operacije u Gitu su:
- Grananje
- Spajanje
- Predefiniranje
P # 14) Kako ćete razlikovati Git i SVN?
Odgovor: Git je distribuirana kontrola verzija, dok je SVN centraliziran. To dovodi do mnogih razlika između njih dvoje u pogledu njihovih značajki i funkcionalnosti.
Ići | SVN | |
---|---|---|
Sadržaj | Kriptografski SHA-1 hash. | Nema raspršenog sadržaja. |
Arhitektura poslužitelja | Računalo na koje je instaliran vaš Git djeluje i kao klijent i kao poslužitelj. Svaki programer ima lokalnu kopiju cjelokupne povijesti verzija projekta na svojim pojedinačnim računalima. Git promjene se događaju lokalno. Stoga programer ne mora biti stalno povezan s mrežom. Samo za push i pull operacije, programeri bi trebali internetsku vezu za povezivanje s udaljenim poslužiteljem. | SVN ima zaseban klijent i poslužitelj. Nije lokalno dostupan. Za poduzimanje bilo kakve radnje morat ćete biti povezani s mrežom. Također, u SVN-u, budući da je sve centralizirano, pa će u slučaju pada ili oštećenja središnjeg poslužitelja to rezultirati cjelokupnim gubitkom podataka za projekt. |
Grananje | Git je uglavnom preferiran od strane programera zbog svog učinkovitog modela grananja. Git grane su lagane, ali moćne. Oni su samo reference na određeni predati. Granu možete stvoriti, izbrisati ili izmijeniti u bilo kojem trenutku bez utjecaja na ostale obveze. Dakle, fork, grananje i spajanje je jednostavno s Gitom. | SVN ima složen model razgranavanja i spajanja, a upravljanje njime oduzima puno vremena. U SVN-u se grane generiraju kao direktoriji unutar spremišta. Ova struktura direktorija uglavnom je problematična. Kada je grana spremna, trebate se vratiti na trup. Budući da niste jedini koji spaja promjene, pa se verzija kamiona možda neće smatrati podružnicama programera. To može dovesti do sukoba, nedostajanja datoteka i promjenjivih promjena u vašoj poslovnici. |
Kontrola pristupa | Git pretpostavlja da će svi suradnici imati ista dopuštenja. | SVN vam omogućuje da definirate kontrole pristupa za čitanje / pisanje na svakoj i razini direktorija. |
Auditivnost | U Gitu se promjene prate na razini spremišta. Git se ne opterećuje previše održavanjem precizne povijesti promjena napravljenih u vašem spremištu. Distribuirana priroda Gita omogućuje bilo kojem suradniku da promijeni bilo koji dio povijesti svog lokalnog repoa. S Gitom je teško dokučiti istinsku povijest promjena u vašoj bazi kodova. Na primjer, izgubit ćete povijest nakon preimenovanja u Git. | U SVN-u se promjene prate na razini datoteke. SVN održava prilično dosljednu i preciznu povijest promjena. Možete oporaviti potpuno iste podatke kao i bilo koji trenutak u prošlosti. Povijest SVN-a je trajna i uvijek određena. |
Zahtjevi za pohranu | Git i SVN pohranjuju podatke na isti način. Korištenje prostora na disku je jednako za oboje. Jedina razlika dolazi do slike u slučaju binarnih datoteka. Git nije prijateljski nastrojen prema binarnim datotekama. Ne može se nositi s pohranom velikih binarnih datoteka. | SVN ima algoritam kompresije xDelta koji radi i za binarne i za tekstualne datoteke. Dakle, SVN može pohraniti velike binarne datoteke u razmjerno manjem prostoru od Gita. |
Upotrebljivost | I Git i SVN koriste naredbeni redak kao primarno korisničko sučelje. Git uglavnom koriste programeri / tehnički korisnici. | SVN uglavnom koriste netehnički korisnici jer ga je lakše naučiti. |
Globalni revizijski broj | Nije dostupno | Dostupno |
P # 15) Kako ćete razlikovati Git i GitHub?
Odgovor: Git je visokokvalitetni sustav kontrole verzija. Distribuira se u prirodi i koristi se za praćenje promjena u izvornom kodu tijekom razvoja softvera. Ima jedinstveni model grananja koji pomaže u sinkronizaciji rada među programerima i praćenju promjena u bilo kojoj datoteci.
Primarni ciljevi Gita su brzina, integritet podataka, pružanje podrške distribuiranim, nelinearnim tijekovima rada. Git se instalira i održava na lokalnom računalu, umjesto na oblaku.
GitHub je usluga hostinga Git spremišta temeljenog na oblaku koja okuplja timove. Omogućuje vam GUI zasnovan na webu, kao i kontrolu pristupa i mnoge značajke suradnje, temeljne alate za upravljanje zadacima za svaki projekt.
Također, GitHub je open source, tj. Kôd se čuva na centraliziranom poslužitelju i svi mu mogu pristupiti.
P # 16) Što je sukob u Gitu i kako ga riješiti?
Odgovor: Git ima značajku automatskog spajanja koja samostalno obrađuje spajanje, pod uvjetom da su se promjene koda dogodile u različitim redovima i u različitim datotekama.
Ali, u slučaju nadmetanja za predaje u kojima postoje promjene u istim redovima koda datoteke ili je datoteka izbrisana u jednoj grani, ali postoji i modificirana u drugoj, Git nije u stanju automatski riješiti razlike i time dovodi do sukoba spajanja.
U takvim slučajevima potrebna je vaša pomoć da biste odlučili koji ćete kôd uključiti i koji kod odbaciti u konačnom spajanju.
Do sukoba stapanja može doći tijekom spajanja grane, ponovnog postavljanja grane ili odabira trešnje. Jednom kada se utvrdi sukob, Git istakne sukobljeno područje i traži od vas da ga riješite. Nakon što se sukob riješi, možete nastaviti s spajanjem.
Slijedite korake u nastavku da biste riješili sukob spajanja promjena linija:
- Otvorite Git Bash (naredbeni redak Git).
- Koristiti CD naredba za odlazak na lokalno Git spremište koje ima sukob spajanja.
- Koristiti git status naredba za izradu popisa datoteka zahvaćenih sukobom spajanja.
- Otvorite uređivač teksta koji koristite i prijeđite na datoteku koja ima sukobe spajanja.
- Da biste u svojoj datoteci vidjeli početak sukoba stapanja, potražite dokument u oznaci sukoba<<<<<<<. At the point when you open the file, you’ll observe the modifications from the HEAD or base branch after the line <<<<<<>>>>>> NAZIV GRANE.
- Odaberite u slučaju da trebate zadržati samo promjene svoje grane, samo zadržite promjene druge grane ili unesite novu promjenu koja može uključivati promjene dviju grana. Izbrišite markere sukoba<<<<<<>>>>>> i izvršite promjene koje su vam potrebne u konačnom spajanju.
- Koristiti git dodaje. naredba za dodavanje ili postavljanje promjena.
- Napokon, upotrijebite git commit -m 'poruka' naredba da se vaše promjene komentiraju.
Da biste riješili sukob uklonjenih datoteka, slijedite korake u nastavku:
- Otvorite Git Bash (naredbeni redak Git).
- Koristiti CD naredba za odlazak na lokalno Git spremište koje ima sukob spajanja.
- Koristiti git status naredba za izradu popisa datoteka zahvaćenih sukobom spajanja.
- Otvorite uređivač teksta koji koristite i prijeđite na datoteku koja ima sukobe spajanja.
- Odaberite želite li zadržati uklonjenu datoteku. U programu za uređivanje teksta možete provjeriti najnovije promjene izvršene u uklonjenoj datoteci.
- Koristiti git dodaj naredba za dodavanje uklonjene datoteke natrag u spremište. Ili, upotrijebi idi rm naredba za uklanjanje datoteke iz vašeg spremišta.
- Napokon, upotrijebite git commit -m 'poruka' naredba da se vaše promjene komentiraju.
P # 17) Kako ćete popraviti prekinutu predaju?
Odgovor: Da biste popravili pokvareni popravak ili promijenili zadnji pogodak, najprikladnija metoda je upotreba naredbe “ git počiniti -promijeniti ' .
Omogućuje vam kombiniranje postupnih promjena s prethodnim urezivanjem kao alternativu za stvaranje potpuno novog urezivanja. Ovo zamjenjuje najnovije urezivanje izmijenjenim urezivanjem.
(slika izvor )
Pomoću ove naredbe možete urediti i prethodnu poruku urezivanja bez promjene njezine snimke.
P # 18) Čemu služi git instaweb?
Odgovor: To je skripta putem koje možete trenutno pregledavati svoje radno spremište Git u web pregledniku.
Ova skripta postavlja gitweb i web poslužitelj za pregledavanje lokalnog spremišta. Automatski usmjerava web preglednik i pokreće web poslužitelj kroz sučelje u vaše lokalno spremište.
P # 19) Što je git is-tree?
Odgovor: 'Git je drvo' označava objekt stabla koji sadrži način i ime svih stavki zajedno sa SHA-1 vrijednošću bloba ili stabla.
P # 20) Postoji li način za vraćanje git predaje koja je već progurana i objavljena u javnosti?
Odgovor: Da, za popravljanje ili vraćanje lošeg urezivanja postoje dva pristupa koja se mogu koristiti na temelju scenarija.
Oni su:
- Vrlo je očit način izvršiti novi predaj gdje uklanjate lošu datoteku ili ispravljate pogreške u njoj. Nakon završetka možete ga gurnuti u udaljeno spremište.
- Drugi pristup je stvaranje novog urezivanja za poništavanje svih promjena izvršenih u prethodnom lošem urezivanju. To se može učiniti pomoću naredbe git revert - “ git revert '
P # 21) Kako ćete razlikovati git pull i git fetch?
Odgovor: Git pull naredba povlači sve nove predaje iz određene grane u središnjem spremištu i ažurira ciljnu granu u vašem lokalnom spremištu.
Git fetch također cilja na istu stvar, međutim, njegova temeljna funkcionalnost je malo drugačija. Kada napravite git dohvat, svi novi predaji iz određene grane povući će se u vaše središnje spremište, a ove će se promjene pohraniti u novu granu u vašem lokalnom spremištu. To se naziva dohvaćena grana.
Ako želite vidjeti ove promjene u vašoj ciljnoj grani, tada morate izvršiti a idi spajanje nakon dohvaćanja gita. Ciljna grana bit će ažurirana najnovijim promjenama tek nakon spajanja s dohvaćenom granom.
Dakle, git pull lokalnu podružnicu ažurira sa svojom udaljenom verzijom, dok git preuzimanja ne mijenja izravno vašu lokalnu podružnicu ili radnu kopiju pod preporuke / glave. Git fetch može se koristiti za ažuriranje vaših grana za daljinsko praćenje pod refs / daljinski upravljači //.
Jednostavnim riječima, git pull je jednako git fetch nakon čega slijedi git spajanje .
P # 22) Za što se koristi Staging area ili Indexing u Gitu?
Odgovor: Iz Gitove perspektive, postoje tri područja u kojima se mogu zadržati promjene datoteke, tj. Radni direktorij, scensko područje i spremište.
Prvo izvršite promjene u radnom direktoriju vašeg projekta pohranjenom u vašem računalnom datotečnom sustavu. Sve promjene ostaju ovdje dok ih ne dodate u srednje područje koje se naziva stupnjevanje.
Izmjene možete izvršiti izvedbom git dodaj. naredba. Ovo scensko područje daje vam pregled vašeg sljedećeg urezivanja i u osnovi vam omogućuje fino podešavanje vaših obveza. Možete dodavati ili uklanjati promjene u scenskom području dok ne budete zadovoljni verzijom koju ćete objaviti.
Jednom kada potvrdite promjene i odjavite se s pozornice promijenjene, konačno možete izvršiti promjene. Nakon urezivanja prelaze u lokalno spremište, tj. U direktorij .git / objects.
Ako koristite Git GUI, vidjet ćete opciju za postupno uvođenje promjena. Na donjem snimku zaslona, datoteka sample.txt nalazi se u području nestadnih promjena, što znači da se nalazi u vašem radnom direktoriju.
Možete odabrati datoteku i kliknuti na 'stage changed', a zatim će biti premještena u scensko područje. Na primjer , datoteka hello.txt je prisutna u promijenjenom (obvezatnom) području. Možete provjeriti svoje promjene, a zatim se odjaviti, nakon čega slijedi urezivanje.
Postupak se naziva i indeksiranje jer git održava indeksnu datoteku kako bi pratio promjene vaših datoteka u ta tri područja. Datoteke koje su inscenirane trenutno se nalaze u vašem indeksu.
Kada dodate promjene u mjesto za postavljanje, tada se podaci u indeksu ažuriraju. Kada izvršavate predavanje, zapravo je ono što se nalazi u indeksu koji se obvezuje, a ne ono što je u radnom direktoriju. Možete koristiti git status naredba da biste vidjeli što se nalazi u indeksu.
P # 23) Što je Git Stash?
Odgovor: GIT skrivanje bilježi trenutno stanje radnog imenika i indeksa i zadržava ga na stogu za buduću upotrebu. Vraća neizvršene promjene (i stupnjevane i nestepene) iz vašeg radnog direktorija i vraća vam čisto radno stablo.
Sada možete raditi na nečem drugom, a kad se vratite, možete ponovno primijeniti ove promjene. Dakle, ako se želite prebaciti iz jednog konteksta u drugi bez gubitka trenutnih promjena, tada možete upotrijebiti skrivanje.
Korisno je u brzom prebacivanju konteksta, gdje se nalazite na sredini promjene koda koju ne želite odmah počiniti ili poništiti, a imate još nešto za poraditi. Naredba koju treba koristiti je git stash.
P # 24) Što je Git Stash kap?
Odgovor: Kad vam više nije potreban određeni spremnik, možete ga ukloniti izvršenjem naredba za ispuštanje git stash . Ako iz spremišta želite jednim potezom ukloniti sve skrivene stavke, možete pokrenuti git stash jasna naredba .
P # 25) Što je Git stash apply? Po čemu se razlikuje od Git stash popa?
Odgovor: Obje se naredbe koriste za ponovnu primjenu skrivenih promjena i početak rada s mjesta koje ste ostavili.
U primijeniti git stash naredba, promjene će se ponovno primijeniti na vašu radnu kopiju i također će se čuvati u zalihi. Ova se naredba može koristiti kada želite primijeniti iste skrivene promjene na više grana.
U git stash pop naredba, promjene se uklanjaju sa skrivenog prostora i ponovno primjenjuju na radnu kopiju.
P # 26) Čemu služi naredba git clone?
Odgovor: The git klon naredba kreira kopiju postojećeg središnjeg Git spremišta na vašem lokalnom stroju.
P # 27) Kada se koristi naredba git config?
Odgovor: The git config naredba se koristi za postavljanje opcija konfiguracije za vašu Git instalaciju.
Na primjer, nakon što preuzmete Git, ispod naredbi za konfiguriranje morate koristiti korisničko ime i adresu e-pošte u Gitu:
$ git config –global user.name “”
$ git config –global user.email “”
Dakle, uglavnom se pomoću ove naredbe mogu postaviti stvari poput ponašanja spremišta, korisničkih podataka i postavki.
P # 28) Kako ćete prepoznati je li grana već spojena u master?
Odgovor:
Izvršavanjem naredbi u nastavku možete upoznati status spajanja grana:
- git grana - spojeni master: Ovo će navesti sve grane koje su preimenovane u master.
- git grana - spojena: Ovo će navesti sve grane koje su spojene u HEAD.
- git grana - nije spojeno: Ovo će navesti sve grane koje još nisu spojene.
Prema zadanim postavkama ova naredba govori samo o stanju spajanja lokalnih grana. Ako želite znati i o lokalnom i o udaljenom statusu spajanja grana, tada možete koristiti -do zastava. Ako želite provjeriti samo udaljene grane, tada možete koristiti -r zastava.
P # 29) Što su udice u Gitu?
Odgovor: Git udice su određene skripte koje Git pokreće prije ili nakon događaja poput urezivanja, guranja, ažuriranja ili primanja. Mapa 'kuke' pronaći ćete u direktoriju .git u vašem lokalnom spremištu. Ovdje ćete pronaći skripte za ugradnju pre-commit, post-commit, pre-push, post push.
Te se skripte izvršavaju lokalno prije ili nakon pojave događaja. Također možete modificirati ove skripte prema svojim potrebama i Git će izvršiti skriptu kada se dogodi taj određeni događaj.
P # 30) Čemu služi git fork? Po čemu se račvanje razlikuje od kloniranja?
Odgovor: Račvati projekt znači stvoriti udaljenu kopiju izvornog spremišta na strani poslužitelja. Možete preimenovati ovu kopiju i započeti s izradom novog projekta oko toga bez utjecaja na izvorni projekt. Vilica nije temeljni koncept Gita.
Operaciju račvanja koristi Git tijek rada i ova ideja postoji duže za besplatni softver otvorenog koda poput GitHub. Općenito, nakon što rastavite projekt, rijetko ćete ponovno pridonijeti nadređenom projektu.
Na primjer, OpenBSD je operativni sustav s otvorenim kodom sličan Unixu koji je razvijen forkingom NetBSD, što je još jedan OS otvorenog koda sličan Unixu.
Međutim, u rašljama postoji izravna veza između vaše račvaste kopije i originalnog spremišta. U bilo kojem trenutku možete vratiti izvorni projekt pomoću zahtjeva za povlačenje.
U račvastu kopiju svi se glavni podaci poput kodova i datoteka kopiraju iz izvornog spremišta, međutim grane, zahtjevi za povlačenje i druge značajke ne kopiraju se. Forking je idealan način za suradnju otvorenog koda.
Kloniranje je u osnovi Git koncept. Klon je lokalna kopija bilo kojeg udaljenog spremišta. Kada kloniramo spremište, cijelo izvorno spremište, zajedno s njegovom poviješću i granama, kopira se na naš lokalni stroj.
angularjs pitanja i odgovori za iskusni pdf
Za razliku od račvanja, ne postoji izravna veza između kloniranog spremišta i izvornog udaljenog spremišta. Ako želite povući zahtjeve i vratiti se na izvorni projekt, trebali biste se dodati kao suradnik u izvornom spremištu.
Kloniranje je također izvrstan način za stvaranje sigurnosne kopije izvornog spremišta jer klonirana kopija također ima svu povijest urezivanja.
P # 31) Kako ćete saznati koje su sve datoteke promijenjene u određenom Git urezu?
Odgovor: Korištenjem hash vrijednosti određenog urezivanja možete izvršiti naredbu u nastavku da biste dobili popis datoteka koje su promijenjene u određenom urezivanju:
git diff-tree -r {hash}
Ovo će navesti sve datoteke koje su izmijenjene, kao i datoteke koje su dodane. Oznaka -r koristi se za popis pojedinačnih datoteka zajedno s njihovim putem, umjesto da ih sažima samo u imenima korijenskog direktorija.
Možete koristiti i naredbu u nastavku:
git diff-tree –no-commit-id –name-only -r {hash}
–No-commit-id će prekvalificirati hash brojeve predavanja koji dolaze u izlazu. Dok će -name izuzeti putove datoteka i u izlazu će dati samo imena datoteka.
P # 32) Koja je razlika između git checkout (naziv podružnice) i git checkout -b (naziv podružnice)?
Odgovor: Naredba git checkout (naziv podružnice) prebacit će se s jedne grane na drugu.
Naredba git checkout -b (naziv podružnice) stvorit će novu granu i također se prebaciti na nju.
P # 33) Što je SubGit?
Odgovor: SubGit je alat koji se koristi za SVN u Git migraciju. Razvila ga je tvrtka koja se zove TMate. Pretvara SVN spremišta u Git i omogućuje vam istodobni rad na oba sustava. Automatski sinkronizira SVN s Gitom.
(slika izvor )
Pomoću ovog alata možete stvoriti SVN || Git zrcalo. SubGit bi trebao biti instaliran na vašem Git poslužitelju. Otkrivat će sve postavke vašeg udaljenog SVN spremišta, uključujući SVN revizije, grane i oznake, i pretvara ih u Git zapise.
Također čuva povijest, uključujući praćenje podataka o spajanju.
P # 34) Možete li oporaviti izbrisanu granu u Gitu?
Odgovor: Da, možeš. Da biste oporavili izbrisanu granu, trebali biste znati SHA s vrha glave. SHA ili hash jedinstveni je ID koji Git stvara svakom operacijom.
Kada izbrišete granu, na terminalu se prikazuje SHA:
Izbrisana grana (bila)
Možete koristiti naredbu u nastavku za oporavak izbrisane grane:
git checkout -b
Ako ne znate SHA za urezivanje na vrhu vaše grane, prvo možete koristiti idi reflog naredbu da znate vrijednost SHA, a zatim primijenite gornju naredbu za naplatu da biste vratili svoju granu.
P # 35) Što je git razl naredba? Po čemu se razlikuje od git status?
Odgovor: Git razl je višenamjenska naredba koja se može izvršiti za prikaz razlika između dva proizvoljna urezivanja, promjena između radnog stabla i urezivanja, promjena između radnog stabla i indeksa, promjena između dviju datoteka, promjena između indeksa i stabla itd.
The git status naredba se koristi za pregled spremišta. Prikazuje stanje radnog imenika i područja postavljanja. Popisat će datoteke koje su inscenirane, koje nisu inscenirane i datoteke koje nisu praćene.
P # 36) Što sadrži objekt Comm?
Odgovor: Predmet urezivanja sadrži hash objekta stabla najviše razine, nadređeni hash (ako postoji), podatke o autoru i predavaču, datum urezivanja i poruku urezivanja.
To možete pogledati putem git log naredba.
Primjer:
(slika izvor )
P # 37) Što je git cherry-pick? Koji su scenariji u kojima se može koristiti git cherry-pick?
Odgovor: Git cherry-pick je moćna naredba za primjenu promjena uvedenih jednim ili više postojećih predavanja. Omogućuje vam odabir predavanja iz jedne grane i primjenu na drugu.
git cherry-pick commitSha je naredba koja se koristi za branje trešnje. commitSha je referenca za urezivanje.
Ova se naredba može koristiti za poništavanje promjena. Na primjer, ako ste greškom izvršili predaju na pogrešnoj grani, tada možete provjeriti ispravnu granu i trešnjati odabrati urezivanje tamo gdje treba pripadati.
Također se može koristiti u timskoj suradnji. Mogu postojati scenariji u kojima isti kôd treba dijeliti između dvije komponente proizvoda. U ovom slučaju, ako je jedan programer već napisao taj kôd, drugi ga može isto odabrati.
Branje trešnje također je korisno u hitnim ispravcima programskih pogrešaka gdje se urezivanje zakrpe može odabrati trešnjom izravno u glavnu granu kako bi se problem riješio što je prije moguće.
P # 38) Za što se koristi 'git reset'? Koji je zadani način ove naredbe?
Odgovor: Git resetiran je snažna naredba za poništavanje lokalnih promjena stanja Git repo-a. Ova naredba resetira trenutnu HEAD na navedenu fazu.
Vraća i indeks i radni direktorij na stanje vašeg zadnjeg urezivanja. Git reset ima tri načina, tj. Mekani, tvrdi i mješoviti. Zadani način rada je mješovit.
P # 39) Koja je razlika između 'GLAVA', 'radno stablo' i 'indeks'?
Odgovor: Radno stablo ili radni prostor je direktorij koji sadrži izvorne datoteke na kojima trenutno radite.
Indeks je pripremno područje u Gitu gdje se pripremaju komiteti. Leži između predavanja i vašeg radnog stabla. Git indeks je jedna velika binarna datoteka koja navodi sve datoteke u trenutnoj grani, njihova imena, kontrolne sume sha1 i vremenske oznake.
Ova je datoteka prisutna na /.git/index. HEAD je referenca ili pokazivač na najnovije urezivanje u trenutnoj grani plaćanja.
P # 40) Koja je razlika između ponovne baze i spajanja? Kada biste trebali izvršiti bazu podataka, a kada se spojiti?
Odgovor: Naredbe rebase i merge koriste se za integriranje promjena iz jedne grane u drugu, ali na drugačiji način.
Kao što se vidi na donje dvije slike, pretpostavimo da imate obveze (ovo je prije spajanja / prebaziranja). Nakon spajanja dobit ćete rezultat kao kombinaciju obveza. Objedinjuje povijesti obje grane i stvara novu 'objedinjavanje spajanja' u grani značajke.
S druge strane, rebase će pomaknuti cijelu granu značajke da započne na vrhu glavne grane.
(slika izvor )
Odbori će izgledati ovako:
Predefiniranje se ne preporučuje za javne grane jer stvara nedosljedne spremišta. Međutim, ponovna baza podataka dobra je opcija za privatne podružnice / individualne programere. Nije baš prikladan za način rada po grani. Ali ako imate model podružnice po razvojnom programeru, tada ponovno baziranje ne šteti.
Također, rebase je destruktivna operacija, tako da bi vaš razvojni tim trebao biti dovoljno vješt da ga ispravno primijeni. U protivnom, predani posao može se izgubiti.
Nadalje, poništavanje spajanja je lakše od poništavanja ponovne baze podataka. Dakle, ako znate da mogu postojati mogućnosti za vraćanje, trebali biste koristiti spajanje.
Spajanje ustraje u povijesti kakva jest, dok rebase prekraja povijest. Stoga, ako želite vidjeti povijest u potpunosti onakvom kakva se dogodila, trebali biste koristiti spajanje.
P # 41) Koja je sintaksa za ponovno baziranje?
Odgovor: Sintaksa naredbe rebase je git rebase (novo-predavanje)
P # 42) Kako ćete ukloniti datoteku iz Gita, a da je zapravo ne uklonite iz lokalnog datotečnog sustava?
Odgovor: Za ovo možete upotrijebiti opciju 'cached':
git rm -rf –cached $ FILES
Ova će naredba ukloniti datoteke iz vašeg spremišta, bez brisanja s diska.
P # 43) Koji je uobičajeni obrazac grananja u Gitu?
Odgovor: Uobičajeni obrazac grananja temelji se na git-toku. Ima dvije glavne grane tj. Master i razvoj.
- Glavna grana sadrži proizvodni kod. Sav razvojni kod u nekom se trenutku stapa u glavnu granu.
- Razvojna grana sadrži predprodukcijski kod. Kada su značajke dovršene, spajaju se s glavnom granom, obično putem CI / CD cjevovoda.
Ovaj model također ima neke potporne grane koje se koriste tijekom razvojnog ciklusa:
- Glavne grane / Tematske grane: Koriste se za razvoj novih značajki za nadolazeća izdanja. Može se odvojiti od grane za razvoj i mora se spojiti natrag u granu za razvoj. Općenito, ove grane postoje samo u spremištima za programere, a ne i u izvorima.
- Podružnice hitnih popravaka: Koriste se za neplanirano produkcijsko izdanje kada postoji potreba za ispravkom bilo koje kritične programske pogreške odmah u verziji live prod. Oni se mogu odvojiti od gospodara i moraju se spojiti natrag u razvoj i upravljanje.
- Ogranci izdanja: Koriste se za pripremu novog produkcijskog izdanja. Grana izdanja omogućuje vam manje popravke programskih pogrešaka i pripremu metapodataka za izdanje. Oni se mogu odvojiti od razvoja i moraju se ponovno spojiti u master i razvijati.
Zaključak
Prošli smo kroz važna pitanja koja se obično postavljaju tijekom Git intervjua u ovom vodiču.
To vam neće samo pomoći da se pripremite za predstojeće intervjue, već će vam pojasniti i vaše git koncepte.
Sve najbolje za vaš intervju!
Preporučena literatura
- Intervjuirajte pitanja i odgovore
- Neka zanimljiva pitanja za ispitivanje softverskog testiranja
- Top 40 C pitanja i odgovori za programiranje u intervjuu
- 40 najpopularnijih pitanja i odgovora za J2EE intervjue koje biste trebali pročitati
- Pitanja i odgovori za ispitivanje ETL-a
- 20+ najčešće postavljanih pitanja i odgovora na intervjuu za izlaz
- Najčešća pitanja za intervjue za Oracle obrasce i izvješća
- Neka nezgodna ručna ispitivanja Pitanja i odgovori