Lernen / Cheat Sheet
Git Cheat Sheet für Tester
Die Git-Befehle, die Sie als Tester brauchen, um gemeinsam mit Entwicklern an einem Testframework zu arbeiten: branchen, committen, mit main Schritt halten, Fehler rückgängig machen, ohne Arbeit zu verlieren, und den Commit finden, der einen Bug eingeführt hat. Befehle, die Arbeit verwerfen, sind gekennzeichnet.
Geprüft mit Git 2.40+
Einrichten
| Aufgabe | Code |
|---|---|
| Ihre Identität | git config --global user.name "Mei Lin" git config --global user.email "mei@example.com" |
| Name des Standard-Branches | git config --global init.defaultBranch main |
| Ein Repo klonen | git clone https://github.com/org/tests.git |
| Pull standardmäßig mit Rebase | git config --global pull.rebase true |
Tägliche Arbeit
| Aufgabe | Code |
|---|---|
| Was hat sich geändert? | git status |
| Neuer Branch vom aktuellen Stand | git switch -c fix/login-flaky-wait |
| Dateien stagen | git add tests/login.spec.ts |
| Teile einer Datei stagen | git add -p |
| Committen | git commit -m "Wait for login response instead of sleep" |
| Einen neuen Branch pushen | git push -u origin fix/login-flaky-wait |
| Neueste Änderungen holen | git pull |
| Branch wechseln | git switch main |
Umsehen
| Aufgabe | Code |
|---|---|
| Kompakte Historie | git log --oneline --graph --decorate -20 |
| Historie einer Datei | git log --follow -p -- tests/login.spec.ts |
| Nicht gestagte Änderungen | git diff |
| Gestagte Änderungen | git diff --staged |
| Ihr Branch im Vergleich zu main | git diff main...HEAD |
| Ein einzelner Commit | git show 3f2a9c1 |
| Wer diese Zeilen geändert hat | git blame -L 20,40 tests/login.spec.ts |
| Alle Branches | git branch -a |
Mit main Schritt halten
| Aufgabe | Code |
|---|---|
| Herunterladen, ohne Dateien zu ändern | git fetch origin |
| Eigene Commits auf main neu anwenden | git rebase origin/main |
| Oder main in Ihren Branch mergen | git merge origin/main |
| Nach dem Lösen eines Konflikts | git add <file> then git rebase --continue |
| Den Rebase abbrechen | git rebase --abort |
| Einen rebasten Branch sicher pushen | git push --force-with-lease |
| Einen Commit in diesen Branch kopieren | git cherry-pick 3f2a9c1 |
Rebasen Sie nur Ihre eigenen Branches. --force-with-lease verweigert das Überschreiben von Commits, die jemand anderes gepusht hat.
Rückgängig machen
| Situation | Befehl |
|---|---|
| Änderungen an einer Datei verwerfen (gehen verloren) | git restore tests/login.spec.ts |
| Datei unstagen, Änderungen behalten | git restore --staged tests/login.spec.ts |
| Letzte Commit-Message korrigieren oder Datei ergänzen | git commit --amend |
| Letzten Commit zurücknehmen, Änderungen bleiben gestagt | git reset --soft HEAD~1 |
| Gepushten Commit rückgängig machen (neuer Commit) | git revert 3f2a9c1 |
| Alle lokalen Änderungen verwerfen (gehen verloren) | git reset --hard HEAD |
| Einen „verlorenen“ Commit wiederfinden | git reflog |
Auf gemeinsam genutzten Branches verwenden Sie revert. reset und amend schreiben die Historie um und zwingen alle anderen, ihre Kopie zu reparieren.
Arbeit parken
| Aufgabe | Code |
|---|---|
| Änderungen stashen | git stash push -m "half-done locator refactor" |
| Ungetrackte Dateien einschließen | git stash push -u |
| Stashes auflisten | git stash list |
| Neuesten Stash anwenden und entfernen | git stash pop |
Den Commit finden, der es kaputt gemacht hat
| Aufgabe | Code |
|---|---|
| Starten | git bisect start |
| Aktuellen Commit als schlecht markieren | git bisect bad |
| Einen bekannten guten Commit markieren | git bisect good v2.3.0 |
| Einen Test jeden Schritt entscheiden lassen | git bisect run npx playwright test tests/checkout.spec.ts |
| Beenden und zurückkehren | git bisect reset |
bisect run wertet Exit-Code 0 als gut und 1–127 als schlecht (125 bedeutet: diesen Commit überspringen).