Interviewfragen zu Git mit Antworten
Commits, Index und Branches, Merge und Rebase, Konflikte, Änderungen rückgängig machen mit reset, revert und reflog, Remotes und Pull Requests, Umschreiben der Historie, Interna von Git und Team-Workflows.
226 Fragen fürs Vorstellungsgespräch zu Git mit Antworten und Erklärungen: Level Junior, Middle und Senior. Beispielfragen, Online-Tests und Programmieraufgaben.
- Commits
- Branches
- Rebase
- Reset
- Workflows
Fragen nach Level
Junior
Grundbegriffe und Syntax · 50 Fragen
Middle
Praxis, Feinheiten und Optimierung · 50 Fragen
Senior
Architektur, Interna, Randfälle · 50 Fragen
Beispielfragen
Ein paar Fragen aus jedem Level mit richtiger Antwort und Erklärung.
Git · Junior
- Was macht Git zu einem verteilten Versionskontrollsystem?
Antwort zeigen
Richtige Antwort: Jeder Klon hat die ganze Historie und kann offline arbeiten
Ein Klon enthält jeden Commit, man kann also ohne Server committen, branchen und die Historie ansehen. Ein Remote wie GitHub ist nur eine weitere Kopie, mit der sich das Team synchronisiert.
- Durch welche drei Hauptbereiche bewegt sich eine Datei in Git?
Antwort zeigen
Richtige Antwort: Working Tree, Staging Area (Index), Repository
Man bearbeitet Dateien im Working Tree, wählt mit
git add(dem Index) aus, was in den nächsten Commit kommt, undgit commitspeichert diesen Schnappschuss im Repository. - Was macht
git add file.js?Antwort zeigen
Richtige Antwort: Merkt den aktuellen Inhalt der Datei für den nächsten Commit vor
git addkopiert den aktuellen Zustand der Datei in den Index. Bearbeitet man die Datei danach erneut, sind die neuen Änderungen erst nach einem weiterengit addvorgemerkt. - Was speichert ein Git-Commit?
Antwort zeigen
Richtige Antwort: Einen Schnappschuss des Projekts plus Autor, Nachricht und Elternteil
Konzeptionell ist jeder Commit ein vollständiger Schnappschuss (unveränderte Dateien werden wiederverwendet, nicht dupliziert) mit Metadaten und einem Verweis auf sein Elternteil. Diffs werden berechnet, wenn man sie anfordert.
Git · Middle
- Was macht
git rebase mainauf einem Feature-Branch?Antwort zeigen
Richtige Antwort: Spielt die Commits des Branches auf dem neuesten
mainneu abJeder Feature-Commit wird auf der neuen Basis erneut angewendet, wodurch neue Commits mit neuen Hashes entstehen. Das Ergebnis ist eine lineare Historie, als hätte man den Branch vom heutigen
mainaus begonnen. - Was ist die „goldene Regel“ des Rebasens?
Antwort zeigen
Richtige Antwort: Keine Commits rebasen, auf denen andere aufbauen
Rebasen ersetzt Commits durch neue. Haben Teammitglieder schon die alten, weicht ihre Historie ab, und sie haben am Ende Duplikate. Den eigenen, nicht gepushten oder privaten Branch darf man gern rebasen.
- Merge vs. Rebase, um
mainin einen Feature-Branch zu holen: was ist der Kompromiss?Antwort zeigen
Richtige Antwort: Merge behält die echte Historie; Rebase ergibt eine lineare, schreibt aber Commits um
Merge bewahrt genau, was passiert ist, und fügt Merge-Commits hinzu; Rebase erzeugt eine saubere Linie, die leichter zu lesen und zu bisecten ist, auf Kosten neuer Hashes. Teams wählen eine Konvention.
- Während eines Rebase stößt du auf einen Konflikt. Was ist die übliche Abfolge?
Antwort zeigen
Richtige Antwort: Dateien korrigieren, mit
git addvormerken, danngit rebase --continueRebase hält beim konfliktbehafteten Commit an; ist er gelöst und vorgemerkt, geht
--continuezum nächsten.--skipverwirft den aktuellen Commit ganz,--abortstellt den ursprünglichen Branch wieder her.
Git · Senior
- Welche vier Objekttypen bilden die Objektdatenbank von Git?
Antwort zeigen
Richtige Antwort: Blob, Tree, Commit und annotiertes Tag
Blobs halten Dateiinhalte, Trees ordnen Namen Blobs und Subtrees zu, Commits zeigen auf einen Tree und Eltern, und annotierte Tags zeigen auf ein Objekt mit Nachricht. Branches sind Refs, keine Objekte.
- Warum dupliziert das Umbenennen einer Datei ihren Inhalt im Git-Speicher nicht?
Antwort zeigen
Richtige Antwort: Der Blob wird über den Inhalt adressiert; nur der Tree-Eintrag ändert sich
Identischer Inhalt hat immer denselben Hash, wird also einmal gespeichert. Umbenennungen werden später durch Vergleich von Trees erkannt, nicht explizit festgehalten.
- Was ist intern eine Ref in Git?
Antwort zeigen
Richtige Antwort: Ein Name, der einen Commit-Hash speichert, etwa
refs/heads/mainRefs liegen als kleine Dateien oder in
packed-refs.HEADist eine symbolische Ref, die auf eine andere Ref zeigt. Einen Branch zu verschieben heißt nur, einen neuen Hash in seine Ref zu schreiben. - Was macht
git gc?Antwort zeigen
Richtige Antwort: Packt Objekte, entfernt unerreichbare und lässt alte Reflogs ablaufen
Lose Objekte werden mit Deltas in Packfiles komprimiert, und von Refs und Reflogs aus unerreichbare Objekte werden nach einer Schonfrist entfernt. Git führt es automatisch aus.
Programmieraufgaben
Schreib die Lösung direkt im Browser, und Tests prüfen sie sofort. Klassiker aus Vorstellungsgesprächen zu JavaScript (debounce, deepClone, Promise.all, LRU-Cache), zu TypeScript (Generics, Narrowing und Utility Types, geprüft von einem echten Compiler), Backend-Logik in Node.js (Middleware, Rate Limits, Job-Queues), SQL-Abfragen in echtem PostgreSQL und zu React: Komponenten und Hooks wie eine Aufgabenliste, Tabs, useDebounce und useInterval.
Aufgaben öffnen →