Apprendre / Aide-mémoire
Aide-mémoire Git pour testeurs
Les commandes Git dont un testeur a besoin pour travailler sur un framework de test aux côtés des développeurs : créer une branche, commiter, rester à jour avec main, annuler une erreur sans perdre son travail et retrouver le commit qui a introduit un bug. Les commandes qui détruisent du travail sont signalées.
Vérifié avec Git 2.40+
Configuration
| Tâche | Code |
|---|---|
| Votre identité | git config --global user.name "Mei Lin" git config --global user.email "mei@example.com" |
| Nom de la branche par défaut | git config --global init.defaultBranch main |
| Cloner un dépôt | git clone https://github.com/org/tests.git |
| pull en mode rebase par défaut | git config --global pull.rebase true |
Travail quotidien
| Tâche | Code |
|---|---|
| Qu’est-ce qui a changé ? | git status |
| Nouvelle branche depuis la position actuelle | git switch -c fix/login-flaky-wait |
| Indexer des fichiers | git add tests/login.spec.ts |
| Indexer une partie d’un fichier | git add -p |
| Commiter | git commit -m "Wait for login response instead of sleep" |
| Pousser une nouvelle branche | git push -u origin fix/login-flaky-wait |
| Récupérer les dernières modifications | git pull |
| Changer de branche | git switch main |
Explorer
| Tâche | Code |
|---|---|
| Historique compact | git log --oneline --graph --decorate -20 |
| Historique d’un fichier | git log --follow -p -- tests/login.spec.ts |
| Modifications non indexées | git diff |
| Modifications indexées | git diff --staged |
| Votre branche comparée à main | git diff main...HEAD |
| Un commit | git show 3f2a9c1 |
| Qui a modifié ces lignes | git blame -L 20,40 tests/login.spec.ts |
| Toutes les branches | git branch -a |
Rester à jour avec main
| Tâche | Code |
|---|---|
| Télécharger sans modifier les fichiers | git fetch origin |
| Rejouer vos commits par-dessus main | git rebase origin/main |
| Ou fusionner main dans votre branche | git merge origin/main |
| Après avoir résolu un conflit | git add <file> then git rebase --continue |
| Abandonner le rebase | git rebase --abort |
| Pousser une branche rebasée sans risque | git push --force-with-lease |
| Copier un commit sur cette branche | git cherry-pick 3f2a9c1 |
Ne rebasez que vos propres branches. --force-with-lease refuse d’écraser des commits poussés par quelqu’un d’autre.
Annuler
| Situation | Commande |
|---|---|
| Abandonner les modifications d’un fichier (elles sont perdues) | git restore tests/login.spec.ts |
| Désindexer un fichier en gardant les modifications | git restore --staged tests/login.spec.ts |
| Corriger le message du dernier commit ou y ajouter un fichier | git commit --amend |
| Annuler le dernier commit en gardant les changements indexés | git reset --soft HEAD~1 |
| Annuler un commit déjà poussé (ajoute un nouveau commit) | git revert 3f2a9c1 |
| Jeter toutes les modifications locales (elles sont perdues) | git reset --hard HEAD |
| Retrouver un commit « perdu » | git reflog |
Sur les branches partagées, utilisez revert. reset et amend réécrivent l’historique et obligent tous les autres à réparer leur copie.
Mettre du travail de côté
| Tâche | Code |
|---|---|
| Remiser les modifications (stash) | git stash push -m "half-done locator refactor" |
| Inclure les fichiers non suivis | git stash push -u |
| Lister les stashs | git stash list |
| Réappliquer et supprimer le plus récent | git stash pop |
Trouver le commit qui a tout cassé
| Tâche | Code |
|---|---|
| Démarrer | git bisect start |
| Marquer le commit actuel comme mauvais | git bisect bad |
| Marquer un commit connu comme bon | git bisect good v2.3.0 |
| Laisser un test décider à chaque étape | git bisect run npx playwright test tests/checkout.spec.ts |
| Terminer et revenir | git bisect reset |
bisect run considère le code de sortie 0 comme bon et 1 à 127 comme mauvais (125 signifie ignorer ce commit).