Git/GIthub Flashcards

1
Q

Qu’est-ce que Git et pourquoi est-il important dans le développement web ?

A

Git est un système de gestion de version décentralisé créé par Linus Torvalds en 2005. Il permet de suivre les modifications apportées au code source, de travailler à plusieurs sur un même projet en simultané, de revenir à des versions antérieures en cas de bugs, et de développer des fonctionnalités plus facilement. Dans le développement web, Git est essentiel car il facilite la collaboration entre développeurs, permet de maintenir un historique complet des modifications, et s’intègre parfaitement dans les méthodologies de développement agiles.

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

Quelle est la différence entre Git et GitHub ?

A

Git est un système de gestion de version décentralisé, tandis que GitHub est un service web d’hébergement de projets utilisant Git. GitHub ajoute des fonctionnalités sociales et de collaboration comme les issues (suivi de problèmes), les wikis, les pages web, et permet l’intégration avec d’autres services. En résumé, Git est l’outil de gestion de version, tandis que GitHub est une plateforme qui utilise Git pour fournir des services d’hébergement et de collaboration.

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

Expliquez le concept de “zone de préparation” (staging area) dans Git.

A

La zone de préparation (staging area) est un espace intermédiaire dans Git où les modifications sont placées avant d’être enregistrées définitivement dans l’historique du projet (commit). Elle permet de sélectionner précisément quelles modifications seront incluses dans le prochain commit, offrant ainsi un contrôle granulaire sur l’historique du projet. On utilise git add pour ajouter des fichiers à cette zone, puis git commit pour les enregistrer dans l’historique.

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

Décrivez votre workflow habituel lors de l’utilisation de Git dans un projet.

A

Mon workflow habituel comprend les étapes suivantes:
1. Je commence par vérifier l’état du projet avec git status
2. Je récupère les dernières modifications avec git pull pour être à jour
3. Je crée une nouvelle branche si je travaille sur une fonctionnalité importante
4. Je modifie les fichiers nécessaires pour ma tâche
5. Je vérifie les changements avec git status et git diff
6. J’ajoute les modifications à la zone de préparation avec git add
7. Je crée un commit avec un message descriptif via git commit -m “message”
8. Je répète les étapes 4-7 si nécessaire
9. Je pousse mes modifications vers le dépôt distant avec git push
10. Si des conflits surviennent, je les résous localement avant de poursuivre

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

Comment résoudriez-vous un conflit de fusion dans Git ?

A

Pour résoudre un conflit de fusion:
1. J’identifie d’abord les fichiers en conflit avec git status
2. J’ouvre ces fichiers dans mon éditeur pour examiner les sections en conflit (marquées par «««<, =======, et&raquo_space;»»>)
3. Je modifie manuellement les fichiers pour intégrer correctement les deux versions ou choisir l’une d’elles
4. Je supprime les marqueurs de conflit
5. Je teste que mes modifications fonctionnent correctement
6. J’ajoute les fichiers résolus avec git add
7. Je finalise la fusion avec git commit
8. Enfin, je pousse les modifications résolues avec git push

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

Comment contribueriez-vous à un projet open-source sur GitHub ?

A

Pour contribuer à un projet open-source:
1. Je fais un fork du dépôt original sur GitHub
2. Je clone mon fork sur ma machine locale
3. Je crée une branche spécifique pour ma contribution
4. Je développe et teste ma contribution
5. Je commite mes changements avec des messages clairs
6. Je pousse ma branche vers mon fork
7. Sur GitHub, je crée une pull request vers le dépôt original
8. Je réponds aux commentaires et apporte les modifications demandées
9. Une fois approuvée, ma contribution peut être fusionnée au projet principal

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

Quelle commande utiliseriez-vous pour annuler les modifications non commitées dans un fichier?

A

Pour annuler les modifications non commitées dans un fichier, j’utiliserais la commande git checkout – <nom_du_fichier>. Cette commande remplace le fichier dans mon répertoire de travail par la dernière version enregistrée dans Git.</nom_du_fichier>

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

Comment gérez-vous les branches dans Git et quel est leur intérêt dans un projet collaboratif?

A

Les branches permettent de travailler sur différentes fonctionnalités ou corrections de bugs en parallèle sans affecter la branche principale (souvent appelée “main” ou “master”). Dans un projet collaboratif, elles permettent:
* De développer des fonctionnalités isolément
* De tester des modifications sans risquer de casser le code principal
* De faciliter la révision de code via les pull/merge requests
* D’organiser le travail entre différents développeurs
Les commandes principales pour gérer les branches sont:
* git branch: Lister les branches
* git branch <nom>: Créer une nouvelle branche
* git checkout <nom> ou git switch <nom>: Changer de branche
* git merge <nom>: Fusionner une branche dans la branche courante
* git branch -d <nom>: Supprimer une branche</nom></nom></nom></nom></nom>

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

Comment utiliser Git dans le cadre du développement web et web mobile selon les exigences du référentiel DWWM?

A

Dans le cadre du développement web et web mobile selon le référentiel DWWM, Git est utilisé pour:
1. Installer et configurer l’environnement de travail en équipe
2. Permettre la collaboration efficace entre développeurs front-end et back-end
3. Gérer les versions du code pour les interfaces utilisateur web et web mobile
4. Faciliter l’intégration continue dans une démarche DevOps
5. Documenter le déploiement d’applications
6. Permettre un suivi des modifications pour faciliter la résolution de problèmes
J’utiliserais Git avec:
* Des branches séparées pour le développement front-end et back-end
* Des commits réguliers et bien documentés pour faciliter la traçabilité
* Des pull requests pour la révision de code
* Des tags pour marquer les versions importantes de l’application

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

Comment Git peut-il s’intégrer dans une démarche DevOps pour le déploiement d’applications web?

A

Git s’intègre parfaitement dans une démarche DevOps pour le déploiement d’applications web:
1. En utilisant des branches spécifiques (develop, staging, production) qui correspondent aux environnements de déploiement
2. En automatisant les tests et le déploiement via des outils CI/CD (comme GitHub Actions, Jenkins, GitLab CI) qui se déclenchent automatiquement lors de commits ou pull requests
3. En documentant les scripts de déploiement et les procédures directement dans le dépôt Git
4. En utilisant les tags Git pour marquer les versions déployées
5. En facilitant la traçabilité des changements déployés
Cette approche permet d’améliorer la qualité du code, d’accélérer les cycles de déploiement et de faciliter la collaboration entre les équipes de développement et d’exploitation.

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

Dans le référentiel DWWM, comment les outils de gestion de version comme Git contribuent-ils à la compétence “Installer et configurer son environnement de travail en fonction du projet web ou web mobile”?

A

Dans le cadre de cette compétence, Git contribue par:
1. L’installation et la configuration des outils de développement nécessaires via le clonage des dépôts
2. La mise en place d’outils de gestion des versions et de collaboration
3. L’implémentation de services requis pour l’environnement de développement, parfois via des conteneurs
4. La compréhension de documentation technique en français ou anglais
5. La mise en place d’un système de veille pour suivre les évolutions technologiques et les problématiques de sécurité
Git permet notamment d’assurer la cohérence des environnements de développement entre les membres de l’équipe grâce aux fichiers de configuration partagés, aux scripts d’installation, et à la documentation des dépendances.

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

Comment démontrez-vous la maîtrise de la compétence “Documenter le déploiement d’une application dynamique web ou web mobile” en utilisant Git et GitHub?

A

Pour démontrer cette compétence, j’utilise Git et GitHub de plusieurs façons:
1. Je documente les procédures de déploiement directement dans le dépôt Git via des fichiers README.md ou des wikis GitHub
2. Je conserve les scripts de déploiement dans le contrôle de version, avec des commentaires détaillés
3. J’utilise les releases et tags Git pour marquer clairement les versions déployables
4. Je maintiens à jour la documentation à chaque évolution de l’application ou de son infrastructure
5. J’utilise les issues GitHub pour suivre les problèmes liés au déploiement
6. Je documente les procédures de rollback en cas de problème
Cette approche assure que toute l’équipe a accès à une documentation à jour et que l’historique des modifications de la procédure de déploiement est conservé.

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

En tant que Développeur Web et Web Mobile, comment assurez-vous la sécurité des applications en utilisant Git?

A

J’assure la sécurité des applications en utilisant Git de plusieurs manières:
1. Je configure correctement les fichiers .gitignore pour éviter de pousser des informations sensibles (clés API, identifiants, variables d’environnement)
2. J’utilise des hooks Git pour vérifier automatiquement les failles de sécurité avant les commits
3. Je suis attentif aux vulnérabilités signalées dans les dépendances via les outils intégrés à GitHub comme Dependabot
4. ‘implémente des revues de code systématiques via les pull requests
5. J’utilise la signature de commits pour authentifier l’origine des modifications
6. Je configure correctement les droits d’accès au dépôt Git pour limiter les risques
7. Je documente les corrections de sécurité pour faciliter la veille et la maintenance
Cette approche proactive de la sécurité correspond aux attentes du référentiel DWWM concernant la sécurisation des applications web et web mobile.

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