QCM sur GIT – Gestionnaire de version – Partie 12
De plus en plus d’entreprises et d’organisations abandonnent les systèmes de contrôle de version centralisés SVN, au profit des systèmes distribués comme GIT, de nombreux développeurs découvrent leur première introduction sur Git, GitHub et GitLab. Ces 10 questions vous aident à tester vos connaissances sur divers sujets, notamment l’utilisation des commandes Git de base, l’historique, etc…
1. Votre projet actuel a plusieurs branches : master, beta, et push-notifications. Vous venez de terminer la fonctionnalité de notification dans la branche push-notification, et vous voulez la commiter dans la branche beta. Comment faire ?
A Allez sur la branche push-notifications et exécutez git merge beta
B Allez sur la branche master et lancer git merge beta -> push-notifications
C Supprimez la branche push-notifications et elle sera commitée à la branche master automatiquement.
D Allez sur la branche beta et exécuter git merge push-notifications
2. Que va afficher la commande suivante dans le terminal ?
$ git remote -v
A Une liste des dépôts distants et leurs URLs
B La version actuelle de git que vous utilisez
C Un éditeur en ligne pour modifier les dépôts distants
D Les 5 dernières versions de git que vous avez installées
3. En regardant les commandes suivantes, décrivez ce qui se passe.
$ git checkout feature-user-profile $ git cherry-pick a29842122sea09119336a3be2sdf59sdfo992eef45296744
A Le commit est en train d’être marqué pour mise en production sur la branche feature-user-profile.
B Un commit est en train d’être copié de sa branche d’origine vers la branche feature-user-profile.
C Le commit est en train d’être sélectionné comme nouveau HEAD de l’historique des commits.
D Un commit est en train d’être copié de la branche « feature-user-profile» vers la branche « master ».
E La branche est basculée sur la branche « feature-user-profile », et le commit spécifié est appliqué à la branche.
4. Que fait la commande suivante sur le dépôt git ?
git reset --soft HEAD^
A Elle supprime tous les commits précédents et réinitialise l’historique du dépôt à son état initial.
B Elle réinitialise la branche de travail au premier commit.
C Il conserve le HEAD au commit actuel mais efface tous les commits précédents.
D Il met HEAD à la dernière commit et laisse les changements de la commit annulée dans le stage/index.
5. Vous trouvez un bogue dans votre projet, mais vous ne parvenez pas à localiser l’endroit où il a été introduit dans l’historique des commits. Comment diagnostiquer ce problème ?
A Remontez manuellement dans l’historique des commits.
B Utilisez git search -diff pour comparer tous les commits dans l’historique de votre dépôt.
C Exécutez un git rebase pour trouver le commit défectueux.
D Utilisez git bisect pour comparer le commit bogué à un commit antérieur qui fonctionne comme prévu.
6. Pourquoi utiliser la commande suivante ?
git rebase -i HEAD~10
A Pour effectuer une recherche comparative des différences entre les 10 dernières commits.
B Pour lister les 10 derniers commits et les modifier avec la commande squash ou fixup
C Pour supprimer les 10 derniers commits et réinitialiser le HEAD
D Pour mettre en cache localement les 10 dernières modifications
7. Comment fusionner plusieurs commits sans utiliser git merge –squash ?
A Vous ne pouvez pas. git merge –squash est la seule commande git pour cette opération.
B Rebasing
C Caching
D Reflogging
8. Si vous clonez un dépôt git existant, que se passera-t-il ?
A Une nouvelle copie écraserait le dépôt central.
B Une copie du dépôt serait créée sur votre machine locale
C Rien, le clonage n’est pas une fonction git supportée.
D Une copie du dépôt serait créée sur la plateforme d’hébergement
9. Comment afficher la liste des fichiers ajoutés ou modifiés dans un commit spécifique ?
A Trouvez le commit dans le dépôt distant, car c’est le seul endroit où ce type d’information est stocké.
B Utilisez la commande diff-tree avec le hash du commit.
C Exécuter git commit –info avec le hash du commit.
D Accéder aux données du commit stash avec git stash.
10. Quels sont les fichiers que ce .gitignore est programmé pour ignorer ?
#.swift build/ *.txt *.metadata
A Tous les fichiers avec une extension .swift, .txt, ou metadata, ainsi que l’ensemble du répertoire build.
B Uniquement le répertoire build
C Tous les fichiers du répertoire build, ainsi que les fichiers se terminant par .txt ou .metadata
D Uniquement les fichiers portant les extensions .swift et .txt.