SCM Flashcards

1
Q

Pourquoi utiliser un SCM ?

A

Pour éviter la perte de versions, faciliter la collaboration, gérer un historique des modifications, et permettre le travail en équipe avec des outils comme les commits et les merges.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelle est la différence entre un repository et une working copy ?

A

Repository : Contient tous les fichiers et leur historique sur un serveur (centralisé ou distribué).
Working Copy : Version locale des fichiers sur laquelle un utilisateur travaille.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Que fait un commit ?

A

Il enregistre les modifications locales dans le repository.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Que signifient les termes « trunk » et « branch » ?

A

Trunk : Ligne principale de développement (code stable).
Branch : Développement parallèle pour des fonctionnalités spécifiques.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelle est la différence entre un SCM centralisé et un SCM distribué ?

A

Centralisé : Un seul repository centralisé. Connexion nécessaire pour chaque commit.
Distribué : Chaque utilisateur a une copie complète du repository et peut travailler hors-ligne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Que fait la commande git pull ?

A

Elle récupère les modifications d’un repository distant et les fusionne dans la branche courante.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Expliquez la commande git merge.

A

Elle fusionne une branche source avec la branche courante, combinant les modifications des deux.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Que signifie la relation «include» dans un diagramme de cas d’utilisation UML ?

A

Elle indique qu’un cas d’utilisation inclut systématiquement un autre cas d’utilisation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Citez trois bonnes pratiques pour utiliser un SCM efficacement.

A

Commiter souvent et rapidement.
Écrire des messages de commit clairs et descriptifs.
Inspecter les modifications avant de commiter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Que fait la commande git rebase ?

A

Elle applique une branche sur une autre en réorganisant les commits pour produire un historique linéaire.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Que signifient les options suivantes dans git log ?
–oneline
–graph

A

–oneline : Affiche chaque commit sur une seule ligne.
–graph : Montre un graphe des branches et merges.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Comment résoudre un conflit de merge dans Git ?

A

Ouvrir les fichiers en conflit.
Modifier le fichier pour intégrer les modifications souhaitées.
Ajouter les fichiers corrigés avec git add.
Finaliser le merge avec git commit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Que fait la commande git stash ?

A

Elle sauvegarde temporairement les modifications non committées pour travailler sur autre chose, sans perdre les changements en cours.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Différences entre git fetch et git pull ?

A

git fetch : Récupère les données d’un repository distant sans les fusionner.
git pull : Récupère et fusionne directement dans la branche locale.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Pourquoi utiliser des tags dans Git ?

A

Pour marquer un point spécifique dans l’historique, souvent utilisé pour des versions (ex. v1.0).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Que fait la commande suivante ?
git reset –hard HEAD~1

A

Elle supprime le dernier commit localement, ainsi que toutes les modifications associées.

17
Q

Expliquez cette commande :
git diff –staged

A

Elle affiche les différences entre les fichiers ajoutés au staging area et le dernier commit.

18
Q

Que fait la commande git cherry-pick ?

A

Elle applique un commit spécifique (d’une autre branche par exemple) dans la branche courante.

19
Q

Que fait la commande suivante ?
git log –since=”2 weeks ago”

A

Elle affiche les commits effectués depuis les deux dernières semaines.

20
Q

Expliquez l’utilité de cette commande :
git bisect start

A

Elle permet de rechercher un commit qui a introduit un bug en effectuant une recherche binaire dans l’historique.

21
Q

Qu’est-ce que le CI/CD et pourquoi est-il souvent intégré avec un SCM ?

A

CI/CD (Intégration Continue/Déploiement Continu) automatise les tests et déploiements. Intégré au SCM, il garantit un code testé et déployable après chaque commit.

22
Q

Quels sont les avantages d’une stratégie de « Commit early, commit often » ?

A

Réduction des conflits.
Historique clair et détaillé.
Simplification du debugging.

23
Q

Donne des exemples de SCM autre que git

A

Subversion, Mercurial