Top 30 des questions et réponses d'entrevue Git que vous devez savoir en 2022
Publié: 2021-01-04Git gagne en popularité. Les développeurs travaillent en permanence à la publication de nouvelles versions de l'application non bêta pour corriger les bogues ou améliorer ses fonctionnalités. Git sert en agissant comme un contrôle de version où toutes les modifications sont stockées dans un référentiel central.
Chaque développeur d'une équipe peut afficher les versions, apporter des modifications, puis les télécharger. Cela fonctionne également incroyablement bien pour les personnes travaillant dans des équipes distantes ou travaillant à domicile. Git n'est pas seulement utilisé par les développeurs. Même les non-développeurs de l'équipe peuvent l'utiliser pour obtenir la dernière version ou une version particulière d'une application et l'utiliser pour des tests ou pour d'autres travaux.
Là où Git est un outil en ligne de commande, Git Hub est le centre, où les programmeurs enregistrent leurs projets et communiquent avec une équipe.
Ainsi, avoir la connaissance de Git est en demande, et avec l'augmentation de la demande, nous avons formé un ensemble de questions d'entretien Git qui vous aideraient à trouver un emploi. Pour faciliter la compréhension, nous diviserons les questions d'entrevue GitHub en trois sections - débutants, intermédiaires et avancés.
Table des matières
Questions d'entretien de base sur Git
Q.1) Expliquez la différence entre SVN et Git
- SVN est un outil de contrôle de version centralisé appartenant à la deuxième génération, contrairement à Git qui est un outil de contrôle de version décentralisé appartenant à la troisième génération.
- Dans SVN, un référentiel côté serveur enregistre l'historique des versions. Dans Git, vous pouvez copier l'intégralité du référentiel sur votre PC.
- Dans SVN, vous ne pouvez vous engager que lorsque vous êtes en ligne, contrairement à Git où vous pouvez vous engager même hors ligne.
- Les opérations pull et push sont plus lentes dans SVN par rapport à Git où elles sont plus rapides.
- Dans SVN, votre travail n'est pas partagé tant que vous ne le faites pas, contrairement à Git, qui partage automatiquement.
Q.2) Qu'est-ce que Git ?

Git permet aux développeurs et aux membres d'une équipe de suivre les modifications apportées par n'importe qui. Il vous permet également de revenir aux anciennes versions. Il s'agit d'un système de contrôle de version distribué qui aide l'équipe à savoir qui a effectué les modifications et à quelle date et heure. Il a son propre ensemble d'avantages par rapport aux autres systèmes de contrôle de version.
Le plus grand avantage de Git est qu'il ne dépend pas d'un serveur central pour enregistrer toutes les versions d'un projet. Les développeurs peuvent créer des clones (copies) d'un référentiel sur leurs propres systèmes, ce qui montre l'historique complet. Ce particulier aide quand il y a une grave panne. Dans Git, il existe un référentiel cloud central où les programmeurs ou les membres de l'équipe peuvent valider les modifications et les partager avec leur équipe.
Q.3) Quelle est la différence entre GitHub et Git ?
Un service d'hébergement de référentiel Git s'appelle un GitHub. En outre, il possède ses propres fonctionnalités, comme il offre une interface graphique basée sur le Web. De plus, GitHub donne également accès en plus de servir d'outil de gestion pour un projet.
D'autre part, Git est un système de contrôle de version de nature distribuée. Il est principalement utilisé pour suivre les modifications apportées à l'application non bêta. Il offre rapidité, assistance et intégrité des données. Les développeurs et les autres membres de l'équipe peuvent voir qui a effectué quelles modifications et à quelle date.
Q.4) Quels sont les avantages d'utiliser le système de contrôle de version ?
Cela aide l'équipe et ses membres car ils peuvent travailler à tout moment car le système de contrôle de version leur donne la flexibilité de fusionner les modifications qu'ils ont apportées dans la version commune sans aucun problème.
L'historique montre toutes les anciennes versions et leurs variantes, permettant aux membres de l'équipe de revenir en arrière si nécessaire. Les membres de l'équipe ont également un instantané de l'ensemble du projet.
Les membres de l'équipe doivent commenter lorsqu'ils apportent des modifications, ce qui aide les autres à comprendre quels sont les changements exacts qui rendent le projet plus organisé. Personne n'a besoin d'attendre une explication. Les membres de l'équipe savent exactement qui a modifié la version et pourquoi.
En cas de panne malheureuse du serveur, un VCS distribué comme Git vous permet d'avoir l'historique complet de votre projet car il peut être téléchargé sur votre bureau.
Q.5) Quel langage est utilisé dans Git ?
Le langage utilisé par Git est le langage "C" car la vitesse requise par GIT peut être satisfaite par le langage "C" car il réduit les temps d'exécution, contrairement à d'autres langages de haut niveau.
Q.6) Dites-nous quelques fonctions d'hébergement de référentiel Git
- GithubGenericName
- Gitlab
- SourceForge
- Bitbucket
- GitEnterprise
Q.7) Comment vous engagez-vous sur Git ?
Pour écrire un message de validation, vous devez écrire la commande "git commit -a".
Le -a sur la ligne de commande ordonne à git de valider le dernier contenu de tous les fichiers suivis qui ont été modifiés. Vous pouvez utiliser la commande « git add <file> » avant git commit -a si les nouveaux fichiers doivent être validés pour la première fois.
Q.8) Comment réparer un commit cassé ?
Vous pouvez utiliser la commande « git commit –amend » pour réparer un commit cassé. En exécutant cette commande, il corrige le message de validation cassé dans l'éditeur.
Lire : Principales questions d'entretien chez Nagios
Q.9) Que signifie un référentiel dans Git ?
C'est un endroit où Git enregistre tous les fichiers. Git a la capacité de stocker des fichiers à la fois sur le référentiel distant et sur le référentiel local.
Q.10) Comment pouvez-vous créer un référentiel ?
La création d'un référentiel est simple dans Git. Vous devez créer un répertoire pour le projet si ce n'est déjà fait. Vous devez ensuite exécuter la commande "git init". Cette commande crée le répertoire git dans le répertoire du projet.
Q.11) Expliquez le "dépôt nu" dans Git ?
Un référentiel Git nu est généralement utilisé comme référentiel distant, c'est-à-dire que vous le partagez avec les membres de votre équipe ou d'autres personnes. Il n'y a pas d'arborescence de travail à l'intérieur car aucun travail n'est effectué dans le référentiel distant. Dans d'autres fichiers, il n'y a pas de fichiers à l'intérieur de celui-ci, que vous modifierez. A l'inverse, un répertoire de travail contient un sous-répertoire .git avec tout l'historique des versions ainsi qu'un arbre de travail.
Q.12) Qu'entendez-vous par "conflit" dans git ?
En règle générale, Git gère toutes les fusions en utilisant ses fonctionnalités de fusion automatique. Mais il pourrait y avoir un conflit si deux branches distinctes recevaient des modifications exactement sur la même ligne d'un fichier. Cela peut également arriver lorsqu'un fichier est supprimé d'une branche, mais qu'il a été modifié dans une autre. Ceux-ci sont inévitables lorsque vous travaillez dans un environnement d'équipe.
Q.13) Qu'est-ce que git is-tree ?
'git is-tree' représente un objet arbre comprenant le mode et le nom de l'élément ainsi que la valeur SHA-1 de l'arbre ou d'un blob.
Questions d'entretien pour Git de niveau intermédiaire
Q. 14) Comment résolvez-vous un conflit s'il survient dans Git ?
Vous pouvez résoudre les conflits dans Git des manières suivantes :
- Déterminez quels fichiers ont provoqué la montée du conflit.
- Résolvez le conflit en apportant des modifications à ce fichier particulier.
- Ajoutez à nouveau ces fichiers avec la commande git add.
- Utilisez la commande git commit pour valider le fichier.
Q.15) Si un commit est déjà poussé et rendu public, comment le rétablir dans Git ?
Il existe deux méthodes pour le faire, selon la situation :
- Vous pouvez le supprimer complètement ou corriger le mauvais fichier dans un nouveau commit, puis le renvoyer vers le référentiel distant. C'est la méthode la plus couramment utilisée pour résoudre ce problème. Après avoir apporté les modifications pertinentes au fichier, à l'aide de la commande git commit -m "commit message", vous le validez dans le référentiel distant.
- Alternativement, vous pouvez créer un nouveau commit qui annule toutes les modifications apportées au mauvais commit. Vous pouvez le faire en utilisant la commande git revert <name of bad commit>
Lire : Questions et réponses d'entrevue Agile

Q.16) Qu'est-ce que SubGit ?
C'est un outil qui permet la migration de SVN vers Fit. Il crée un miroir Git inscriptible d'un référentiel Subversion local ou distant et utilise à la fois Subversion et Git aussi longtemps que vous le souhaitez. Vous pouvez utiliser SubGit pour créer un miroir Git-SVN bidirectionnel d'un référentiel Subversion existant. Vous pouvez également effectuer rapidement une importation unique de Subversion vers Git.
Q.17) Quelle est la différence entre la commande git pull et la commande git fetch ?
La commande Git pull récupère toutes les nouvelles modifications ou validations d'une branche précise de votre référentiel central et met à jour votre branche de destination dans votre référentiel local.
La commande Git fetch est utilisée pour quelque chose de similaire mais présente une légère différence. Lorsque vous récupérez, il récupère tous les nouveaux commits d'une branche précise et les enregistre dans une nouvelle branche de votre référentiel local. Si vous souhaitez refléter ces changements dans votre branche de destination, vous devez appeler le git merge.
Ainsi, Git pull = git fetch + git merge.
Q.18) Qu'est-ce qu'un 'index' ou 'staging area' dans Git ?
La zone intermédiaire où les modifications peuvent être formatées ou révisées avant la validation est appelée l'index ou la zone de staging dans Git.
Q.19) Qu'est-ce que git stash ? Comment l'appliquez-vous ?
Il y a des moments où un travail doit être mis en pause car vous devez travailler sur une autre branche en priorité. Le travail à moitié fait ne peut pas être engagé car il n'est pas à ce stade complet, mais vous voulez revenir et travailler dessus dans un court laps de temps. Pour résoudre ce problème, git slash offre de l'aide.
Il l'enregistre dans une pile de modifications inachevées que vous pouvez compléter et valider ultérieurement. Pour revenir à ce travail, il vous suffit d'appeler la commande git stash to apply. Il vous récupère votre travail d'où vous l'avez laissé dans votre répertoire de travail.
Q. 20) En quoi git diff est-il différent de 'git status' ?
'git diff' est presque similaire à 'git status' ; la seule différence qu'ils ont tous les deux est que le premier révèle les différences entre les différents commits. '
Q.21) En quoi 'git remote' est-il différent de 'git clone' ?
Si vous souhaitez créer une entrée dans votre configuration git qui mentionne un nom pour une URL spécifique, vous utilisez 'git remote add'. D'autre part, 'git clone' crée un nouveau référentiel git en copiant un existant situé à l'URL.
Lire : Top React Interview Questions et réponses
Q.22) Décrivez les stratégies de branchement
Chaque entreprise a ses propres stratégies de ramification. Voici quelques-uns des plus populaires :
- Branchement de fonctionnalités - Un modèle de branche de fonctionnalités enregistre toutes les modifications apportées à une fonctionnalité spécifique à l'intérieur d'une branche. Ce n'est qu'après des tests approfondis que cette branche est fusionnée avec son maître.
- Branchement de version - Une fois que la branche de développement a atteint un point où elle est en quelque sorte prête à être publiée; vous pouvez le cloner ou le copier pour former une branche de version. Après le clonage, aucune nouvelle fonctionnalité ne lui est ajoutée. Vous pouvez uniquement corriger les bogues, le documenter ou effectuer de telles activités liées à son amélioration pour la version. Une fois testé, il est fusionné avec son maître et obtient un numéro de version. De plus, il devrait être fusionné dans la branche de développement, qui a peut-être avancé depuis la publication de la version.
- Branchement des tâches - Dans ce modèle, chaque tâche est effectuée sur sa branche individuelle avec la clé de tâche contenue dans le nom de la branche. Il est clair de voir quel code exécute quelle tâche en recherchant la clé de tâche dans le nom de la branche.
Q.23) Expliquez-vous le flux de travail Gitflow ?
Gitflow stocke l'historique d'un projet particulier en utilisant deux branches parallèles de longue durée qui sont master et develop :
- Maître - Ceci est prêt à être branché. Tout est testé et approuvé sur cette branche.
- Hotfix - ces branches sont utilisées pour corriger rapidement les versions de production. Ils ressemblent presque à vos branches de fonctionnalités et à vos branches de publication ; de plus, ils sont basés sur le master au lieu de se développer.
- Développer – Toutes les branches de fonctionnalités sont fusionnées dans cette branche. Ce sont ceux qui subissent des tests. Ce n'est qu'après des tests rigoureux qu'il fusionne avec la branche master.
- Fonctionnalité - chaque nouvelle fonctionnalité doit se trouver dans sa propre branche, qui est ensuite poussée vers sa branche parente, qui est la branche de développement.
Q. 24) Comment savoir si une branche est fusionnée avec master ?
Les commandes suivantes vous aident à savoir si elles sont fusionnées ou non :
git branch –merged – Il répertorie toutes les branches qui ont été fusionnées dans la branche actuelle. Vous pouvez alors voir si c'est le cas ou non.
git branch –no-merged – Alternativement, vous pouvez utiliser cette commande pour vérifier toutes les branches qui ne sont pas fusionnées avec sa branche principale.
Q.25) Comment pouvez-vous supprimer un fichier de git sans le supprimer de votre système de fichiers ?
Vous devez être prudent lorsque vous ajoutez des fichiers à Git pour ne pas finir par ajouter de mauvais fichiers. La commande git rm le supprimera à la fois de la zone de staging et du système de fichiers, vous devez donc utiliser à la place la commande git reset.
Vous pouvez utiliser git reset filename ou echo filename >> .gitingore
Q.26) Expliquez le rebasage et la fusion dans Git ?
Vous utilisez la commande rebase pour intégrer les modifications d'une branche dans une autre. Elle est utilisée comme alternative à la commande de fusion. C'est une alternative à la commande "merge". Il est différent de la fusion car il réécrit l'historique des commits afin de donner une succession droite et organisée de commits.
Questions d'entretien Git de niveau avancé :
Q.27) Comment écraser les N derniers commits en un seul commit ?
Il existe deux façons d'écraser les N derniers commits en un seul commit :
Si vous souhaitez créer un nouveau message de commit depuis le début, vous pouvez utiliser la commande suivante :
git reset –soft HEAD~N &&git commit
Si vous souhaitez simplement modifier le nouveau message de validation avec une concaténation des messages de validation existants, vous devez récupérer ces messages et les transmettre à Git commit en utilisant la commande :
git reset –soft HEAD~N &&git commit –edit -m”$(git log –format=%B –reverse .HEAD@{N} )”
Q.28) Quelles sont les étapes pour intégrer Jenkins à Git ?
Étape 1 : Vous devez cliquer sur le tableau de bord Jenkins pour gérer le bouton Jenkins.
Étape 2 : Cliquez sur le bouton Gérer les plugins.
Étape 3 : Dans la page Plugins, vous devez sélectionner le plugin GIT. Cliquez sur installer sans redémarrage. Le plugin est téléchargé automatiquement, en fonction de la vitesse de votre Internet.
Q.29) Expliquez ce qu'est Git bisect et comment l'utilisez-vous pour accéder à la source d'un bogue ?
En utilisant Git bisect, vous pouvez déterminer quel commit a causé un bogue en utilisant la recherche binaire. La commande pour Git bisect est git bisect <subcommand> <options>
un algorithme de recherche binaire, cette commande trouve quel commit a causé le bogue en premier lieu. Git bisect sélectionne un commit entre les deux points de terminaison où le bogue a été introduit. Vous devez Vous pouvez déterminer entre un bon commit et un mauvais. Il continue de le filtrer jusqu'à ce que le commit exact soit trouvé.

Q.30) Expliquez un git reflog ?
La commande 'reflog' permet de garder une trace de chaque modification apportée aux références d'un référentiel. Il conserve un historique des données des branches et conserve même une balise à celles créées localement ou à l'extérieur .
Cette commande doit être exécutée dans le référentiel qui avait la branche manquante. Dans le cas d'une situation de référentiel distant, vous devez exécuter la commande reflog sur le système du programmeur qui avait la branche.
Obtenez des diplômes en génie logiciel des meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
Conclusion
Nous espérons que les questions d'entretien Git Hub vous aideront à obtenir l'emploi de vos rêves. Ce sont les questions Git les plus fréquemment posées par l'intervieweur. Nous vous souhaitons le meilleur pour votre entretien !
