Le 30 migliori domande e risposte per le interviste Git che devi sapere nel 2022

Pubblicato: 2021-01-04

Git sta diventando sempre più popolare. Gli sviluppatori lavorano continuamente per rilasciare versioni più recenti dell'app non beta per correggere bug o migliorarne la funzionalità. Git funge da controllo di versione in cui tutte le modifiche sono archiviate in un repository centrale.

Ogni sviluppatore di un team può visualizzare le versioni, apportare modifiche e quindi caricarle. Funziona anche incredibilmente bene per le persone che lavorano in team remoti o lavorano da casa. Git non è usato solo dagli sviluppatori. Anche i non sviluppatori del team possono utilizzarlo per ottenere l'ultima versione o una versione particolare di un'app e utilizzarla per i test o per altri lavori.

Laddove Git è uno strumento da riga di comando, Git Hub è il centro, dove i programmatori salvano i loro progetti e comunicano con un team.

Pertanto, la conoscenza di Git è richiesta e, con l'aumento della domanda, abbiamo formato una serie di domande per l'intervista su Git che ti aiuterebbero a garantirti un lavoro. Per semplificare la comprensione, divideremo le domande dell'intervista su GitHub in tre sezioni: principianti, intermedi e avanzati.

Sommario

Domande di intervista Git di livello base

Q.1) Spiega la differenza tra SVN e Git

  • SVN è uno strumento di controllo della versione centralizzato appartenente alla seconda generazione, contrariamente a Git, che è uno strumento di controllo della versione decentralizzato appartenente alla terza generazione.
  • In SVN, un repository lato server salva la cronologia delle versioni. In Git, puoi copiare l'intero repository sul tuo PC.
  • In SVN, puoi impegnarti solo quando sei online, a differenza di Git dove puoi impegnarti anche offline.
  • Le operazioni pull e push sono più lente in SVN rispetto a Git dove è più veloce.
  • In SVN, il tuo lavoro non viene condiviso finché non lo fai, a differenza di Git, che condivide automaticamente.

D.2) Cos'è Git?

Git consente agli sviluppatori e ai membri di un team di tenere traccia delle modifiche apportate da chiunque. Ti consente anche di tornare alle versioni precedenti. È un sistema di controllo della versione distribuito che aiuta il team a sapere chi ha apportato le modifiche e in quale data e ora. Presenta una serie di vantaggi rispetto ad altri sistemi di controllo della versione.

Il più grande vantaggio di Git è che non dipende da un server centrale per salvare tutte le versioni di un progetto. Gli sviluppatori possono creare cloni (copie) di un repository sui propri sistemi, che mostra l'intera cronologia. Questo particolare aiuta quando c'è un'interruzione del server. In Git è presente un repository cloud centrale in cui i programmatori o i membri del team possono eseguire il commit delle modifiche e condividerle con il proprio team.

D.3) Qual è la differenza tra GitHub e Git?

Un servizio di hosting di repository Git è chiamato GitHub. Inoltre, ha le sue caratteristiche come offre un'interfaccia grafica basata sul web. Inoltre, GitHub fornisce anche l'accesso oltre a fungere da strumento di gestione per un progetto.

D'altra parte, Git è un sistema di controllo della versione di natura distribuita. Viene utilizzato principalmente per tenere traccia di eventuali modifiche apportate nell'app non beta. Offre velocità, supporto e integrità dei dati. Gli sviluppatori e gli altri membri del team possono vedere chi ha apportato quali modifiche e in quale data.

D.4) Quali sono i vantaggi dell'utilizzo del sistema di controllo della versione?

Aiuta il team e i suoi membri perché possono lavorare in qualsiasi momento poiché il sistema di controllo della versione offre loro la flessibilità di unire le modifiche apportate nella versione comune senza problemi.

La cronologia mostra tutte le versioni precedenti e le relative varianti, consentendo ai membri del team di tornare indietro se necessario. I membri del team hanno anche un'istantanea dell'intero progetto.

I membri del team devono commentare quando apportano modifiche, il che aiuta gli altri a capire quali esatte modifiche stanno rendendo il progetto più organizzato. Nessuno deve aspettare una spiegazione. I membri del team sanno esattamente chi ha cambiato la versione e perché.

Se si verifica una sfortunata interruzione del server, un VCS distribuito come Git ti consente di avere la cronologia completa del tuo progetto poiché può essere scaricato sul tuo desktop.

D.5) Quale lingua viene utilizzata in Git?

Il linguaggio utilizzato da Git è il linguaggio "C" perché la velocità richiesta da GIT può essere soddisfatta dal linguaggio "C" poiché riduce i tempi di esecuzione, a differenza di altri linguaggi di alto livello.

Q.6) Raccontaci alcune funzioni di hosting del repository Git

  • Github
  • Gitlab
  • SourceForge
  • Bitbucket
  • GitEnterprise

D.7) Come ti impegni su Git?

Per scrivere un messaggio di commit, devi scrivere il comando "git commit -a".

-a sulla riga di comando comanda a git di eseguire il commit del contenuto più recente di tutti i file tracciati che sono stati modificati. È possibile utilizzare il comando "git add <file>" prima di git commit -a se è necessario eseguire il commit dei nuovi file per la prima volta.

Q.8) Come si può correggere un commit interrotto?

Puoi usare il comando "git commit –amend" per correggere un commit interrotto. Eseguendo questo comando, corregge il messaggio di commit interrotto nell'editor.

Leggi: Domande principali sull'intervista a Nagios

D.9) Cosa significa un repository in Git?

È un luogo in cui Git salva tutti i file. Git ha la capacità di archiviare file sia sul repository remoto che locale.

D.10) Come si crea un repository?

Creare un repository è semplice in Git. È necessario creare una directory per il progetto se non è già stato fatto. È quindi necessario eseguire il comando "git init". Questo comando crea la directory git nella directory del progetto.

Q.11) Spiegare 'bare repository' in Git?

Un repository Git nudo viene generalmente utilizzato come repository remoto, ovvero lo condividi con i membri del tuo team o altre persone. Non c'è un albero funzionante al suo interno perché non c'è lavoro svolto all'interno del repository remoto. In altri file, non ci sono file all'interno di questo, che modificherai. Al contrario, una directory di lavoro contiene una sottodirectory .git con tutta la cronologia delle versioni e anche un albero di lavoro.

D.12) Cosa intendi per 'conflitto' in git?

In genere, Git gestisce tutte le unioni utilizzando le sue funzionalità di unione automatica. Ma potrebbe esserci un conflitto se due rami separati ricevessero modifiche nella stessa identica riga di un file. Potrebbe anche accadere quando un file viene eliminato da un ramo, ma è stato modificato in un altro. Questi sono destinati ad accadere quando si lavora in un ambiente di squadra.

D.13) Cos'è git is-tree?

'git is-tree' rappresenta un oggetto albero che comprende la modalità e il nome dell'elemento, nonché il valore SHA-1 dell'albero o di un BLOB.

Domande di intervista Git di livello intermedio

D. 14) Come si risolve un conflitto se si verifica in Git?

Puoi risolvere i conflitti in Git nei seguenti modi:

  1. Determina quali file hanno causato l'aumento del conflitto.
  2. Risolvi il conflitto apportando modifiche a quel particolare file.
  3. Aggiungi di nuovo questi file con il comando git add.
  4. Usa il comando git commit per eseguire il commit del file.

D.15) Se un commit è già stato inviato e reso pubblico, come lo si ripristina in Git?

Esistono due metodi per farlo, a seconda della situazione:

  1. Puoi rimuoverlo completamente o correggere il file danneggiato in un nuovo commit e quindi reinserirlo nel repository remoto. Questo è il metodo più comunemente usato per risolvere questo problema. Dopo aver apportato le modifiche rilevanti al file, usando il comando git commit -m “commit message”, lo si impegna nel repository remoto.
  2. In alternativa, puoi creare un nuovo commit che annulla tutte le modifiche apportate nel commit errato. Puoi farlo usando il comando git revert <name of bad commit>

Leggi: Domande e risposte sull'intervista agile

D.16) Che cos'è SubGit?

È uno strumento che consente la migrazione da SVN a Fit. Crea un mirror Git scrivibile di un repository Subversion locale o remoto e utilizza sia Subversion che Git per tutto il tempo che desideri. Puoi usare SubGit per creare un mirror Git-SVN bidirezionale di un repository Subversion esistente. Puoi anche eseguire rapidamente un'importazione una tantum da Subversion a Git.

D.17) Qual è la differenza tra il comando git pull e il comando git fetch?

Il comando Git pull recupera tutte le nuove modifiche o commit da un ramo preciso dal tuo repository centrale e aggiorna il tuo ramo di destinazione nel tuo repository locale.

Il comando Git fetch viene utilizzato per qualcosa di simile ma presenta una leggera differenza. Quando si recupera, recupera tutti i nuovi commit da un ramo preciso e lo salva in un nuovo ramo nel repository locale. Se desideri riflettere queste modifiche nel tuo ramo di destinazione, devi chiamare git merge.

Quindi, Git pull = git fetch + git merge.

D.18) Che cos'è 'indice' o 'area di staging' in Git?

L'area intermedia in cui le modifiche possono essere formattate o riviste prima del commit è chiamata indice o area di staging in Git.

D.19) Cos'è git stash? Come lo applichi?

Ci sono momenti in cui un pezzo di lavoro deve essere messo in pausa poiché devi lavorare su qualche altro ramo come priorità. Il lavoro a metà non può essere impegnato in quanto non è in quella fase completa, ma vuoi tornare e lavorarci su in breve tempo. Per risolvere questo problema, git slash offre aiuto.

Lo salva in una pila di modifiche non completate che puoi completare e confermare in seguito. Per tornare a questo lavoro, tutto ciò che devi fare è chiamare git stash per applicare il comando. Ti recupera il tuo lavoro da dove lo hai lasciato alla tua directory di lavoro.

D. 20) In che modo git diff è diverso da 'git status'?

'git diff' è quasi simile a 'git status'; l'unica differenza che hanno entrambi è che il primo rivela le differenze tra i vari commit. '

D.21) In che modo 'git remote' è diverso da 'git clone'?

Se desideri creare una voce nella tua configurazione git che menzioni un nome per un URL specifico, usi 'git remote add'. D'altra parte, 'git clone' crea un nuovo repository git copiandone uno esistente che si trova nell'URL.

Leggi: Domande e risposte sull'intervista Top React

Q.22) Descrivere le strategie di ramificazione

Ogni azienda ha le proprie strategie di ramificazione. Ecco alcuni di quelli popolari:

  • Ramo di funzionalità: un modello di branch di funzionalità salva tutte le modifiche apportate per una funzionalità specifica all'interno di un ramo. Solo dopo un test approfondito, questo ramo viene fuso con il suo master.
  • Ramo di rilascio: una volta che il ramo di sviluppo ha raggiunto un punto in cui è in qualche modo pronto per il rilascio; puoi clonarlo o copiarlo per formare un ramo di rilascio. Dopo la clonazione, non viene aggiunta alcuna nuova funzionalità. Puoi solo correggere bug, documentarlo o svolgere attività correlate al suo miglioramento per il rilascio. Una volta testato, viene unito al suo master e ottiene un numero di versione. Inoltre, dovrebbe essere nuovamente unito al ramo di sviluppo, che potrebbe essere andato avanti da quando è stata rilasciata la versione.
  • Diramazione delle attività: in questo modello, ogni attività viene eseguita sul proprio ramo con la chiave dell'attività tenuta nel nome del ramo. È chiaro quale codice esegue quale attività cercando la chiave dell'attività nel nome del ramo.

D.23) Spiegare il flusso di lavoro Gitflow?

Gitflow memorizza la storia di un particolare progetto impiegando due rami paralleli di lunga data che sono master e sviluppano:

  • Maestro – Questo è pronto per andare ramo. Tutto è testato e approvato su questo ramo.
  • Hotfix: questi rami vengono utilizzati per applicare rapidamente patch ai rilasci di produzione. Sono quasi come i tuoi rami di funzionalità e i rami di rilascio; inoltre, si basano sul master invece che sullo sviluppo.
  • Sviluppo: tutti i rami delle funzionalità vengono uniti in questo ramo. Questi sono quelli che vengono sottoposti a test. Solo dopo rigorosi test, si fonde con il ramo principale.
  • Funzionalità: ogni nuova funzionalità dovrebbe risiedere nel proprio ramo, che viene quindi inviato al ramo padre, che è il ramo di sviluppo.

D. 24) Come si fa a capire se un ramo è unito al master?

I seguenti comandi ti aiutano a sapere se sono uniti o meno:

git branch –merged – Elenca tutti i rami che sono stati uniti nel ramo corrente. Puoi quindi vedere se lo è o meno.

git branch –no-merged – In alternativa, puoi usare questo comando per controllare tutti i rami che non sono uniti al suo ramo principale.

Q.25) Come puoi rimuovere un file da git senza eliminarlo dal tuo file system?

Devi essere cauto durante l'aggiunta di file a Git per non finire per aggiungere file sbagliati. Il comando git rm lo rimuoverà sia dall'area di staging che dal file system, quindi è necessario utilizzare invece il comando git reset.

Puoi usare git reset filename o echo filename >> .gitingore

Q.26) Spiegare il rebasing e l'unione in Git?

Utilizzare il comando rebase per integrare le modifiche da un ramo all'altro. Viene utilizzato come alternativa al comando di unione. È un'alternativa al comando "unisci". È diverso da merge in quanto riscrive la cronologia dei commit per fornire una successione di commit dritta e organizzata.

Domande sul colloquio Git di livello avanzato:

Q.27) Come si comprimono gli ultimi N commit in un unico commit?

Ci sono due modi per schiacciare gli ultimi N commit in un singolo commit che sono:

Se desideri creare un nuovo messaggio di commit dall'inizio, puoi utilizzare il seguente comando:

git reset –soft HEAD~N &&git commit

Se vuoi semplicemente modificare il nuovo messaggio di commit con una concatenazione dei messaggi di commit esistenti, devi recuperare quei messaggi e passarli a Git commit usando il comando:

git reset –soft HEAD~N &&git commit –edit -m”$(git log –format=%B –reverse .HEAD@{N} )”

D.28) Quali sono i passaggi per integrare Jenkins con Git?

Passaggio 1: è necessario fare clic sulla dashboard Jenkins per gestire il pulsante Jenkins.

Passaggio 2: fare clic sul pulsante Gestisci plug-in.

Passaggio 3: nella pagina dei plug-in, è necessario selezionare il plug-in GIT. Fare clic su Installa senza riavviare. Il plug-in viene scaricato automaticamente, a seconda della velocità di Internet.

D.29) Spiega cos'è Git bisect e come lo usi per arrivare alla fonte di un bug?

Usando Git bisect, puoi capire quale commit ha causato il bug usando la ricerca binaria. Il comando per Git bisect è git bisect <sottocomando> <opzioni>

un algoritmo di ricerca binaria, questo comando trova quale commit ha causato il bug in primo luogo. Git bisect seleziona un commit tra i due endpoint in cui è stato introdotto il bug. È necessario È possibile determinare tra un buon commit e uno cattivo. Continua a filtrarlo fino a quando non viene trovato il commit esatto.

Q.30) Spiega un reflog di git?

Il comando 'reflog' aiuta a tenere traccia di ogni singola modifica che è stata fatta ai riferimenti di un repository. Mantiene una cronologia dei dati delle filiali e mantiene anche un tag per quelli creati localmente o all'esterno .

Questo comando deve essere eseguito nel repository che aveva il ramo mancante. Nel caso di una situazione di repository remoto, è necessario eseguire il comando reflog sul sistema del programmatore che aveva il ramo.

Ottieni lauree in ingegneria del software dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

Ci auguriamo che le domande per l'intervista su Git Hub ti aiutino a ottenere il lavoro dei tuoi sogni. Queste sono le domande Git più comunemente poste dall'intervistatore. Ti auguriamo il meglio per il tuo colloquio!

Prepararsi per una carriera del futuro

Candidati ora per un Master in Ingegneria del Software