Versionsgeschichte verstehen: Log, Diff, Show und Navigation durch die Vergangenheit
Die Projektgeschichte ist mehr als nur ein Protokoll – sie dokumentiert Entscheidungen. Lernen Sie, die Versionsgeschichte informativ zu lesen: Commits filtern, Änderungen zwischen Versionen nachvollziehen und SHA-1-Hashes ohne Scheu zu verstehen. Besonderes Augenmerk legen wir darauf, wie man eine „gute“ von einer „schlechten“ Commit-Historie unterscheidet – das beeinflusst maßgeblich, wie Sie im Team wahrgenommen werden.
- Sie werden in der Lage sein, die Repository-Historie zu lesen und gezielt nach Commits von bestimmten Autoren, zu bestimmten Daten oder mit Stichwörtern zu suchen.
- Sie verstehen, wie Sie Dateiversionen auf verschiedenen Ebenen vergleichen können: Arbeitsverzeichnis, Staging-Bereich und Commits.
- Sie lernen, Commit-Nachrichten nach anerkannten Industriestandards (Conventional Commits) zu verfassen.
จุดเริ่มต้นของบทเรียน
Commit-Historie als Projekttagebuch
- Git log zeigt die Geschichte als umgekehrtes Tagebuch
- Jeder Eintrag ist eine Momentaufnahme der Änderungen
- Speichert wer, wann und was geändert hat
- Ermöglicht die Evolution des Codes nachzuvollziehen
Stellen Sie sich vor, dass Sie jedes Mal, wenn Sie Änderungen in Git speichern, einen Eintrag in ein Entwicklungstagebuch machen. Der Befehl 'git log' zeigt diese Einträge in umgekehrter chronologischer Reihenfolge – von den neuesten zu den ältesten. In diesem Tagebuch ist die vollständige Chronik des Projekts gespeichert: Wer hat wann welche Änderungen vorgenommen? Dies ist nicht nur eine Liste von Änderungen, sondern eine lebendige Geschichte der Evolution Ihres Codes. Die Fähigkeit, diese Geschichte zu lesen und zu analysieren, ist eine Schlüsselkompetenz für die Teamarbeit. Denn durch die Commit-Historie sehen Sie, wie sich das Projekt entwickelt hat, welche Entscheidungen getroffen wurden und warum. Lassen Sie uns die Struktur eines einzelnen Commits genauer betrachten.
Commit-Eintrag lesen: Hash, Autor, Datum
- commit: eindeutiger Hash-Identifikator
- Author: wer und wann die Änderungen vorgenommen hat
- Date: Zeitstempel des Commits
- Nachricht: was genau geändert wurde
Schauen Sie sich die Ausgabe des Befehls 'git log' an. Jeder Eintrag beginnt mit einer langen Zeichenkette – das ist der Commit-Hash, sein eindeutiger Identifikator. Rechts davon sehen Sie den Autor der Änderungen und das Datum der Änderung. Darunter befindet sich die Commit-Nachricht, die der Entwickler beim Speichern der Änderungen geschrieben hat. Beachten Sie das Format: Zuerst kommt die E-Mail des Autors in spitzen Klammern, dann der Zeitstempel. Diese Daten helfen, den Kontext der Änderungen zu verstehen und bei Bedarf mit dem Autor Kontakt aufzunehmen. Nachdem wir nun die Struktur eines Commits besprochen haben, lassen Sie uns verstehen, was ein Hash ist und wofür er benötigt wird.
#!/bin/bash
cd ~/projects/git-course/
git log -1 --pretty=format:'commit %H%nAuthor: %an <%ae>%nDate: %ad%n%n %s'
Der Commit-Hash – Ihr Schlüssel zur Historie
- Der Hash ist ein digitaler Fingerabdruck des Commits
- Hängt vom Inhalt und den Metadaten ab
- Die Änderung eines einzigen Zeichens verändert den Hash
- Ermöglicht die genaue Referenzierung jeder Version
Ein Commit-Hash ist keine zufällige Zeichenfolge, sondern das Ergebnis einer kryptografischen Funktion, die den Inhalt des Commits in eine eindeutige Zeichenkette umwandelt. Wenn Sie auch nur ein Byte im Commit ändern, wird der Hash komplett anders aussehen. Dies gewährleistet die Integrität der Versionshistorie. Mit dem Hash können Sie auf jede Codeversion zugreifen, wie mit einem Lesezeichen in einem Buch. Der Befehl 'git checkout' mit dem entsprechenden Hash versetzt Sie in den Projektzustand zum Zeitpunkt dieses Commits. Das ist besonders nützlich, wenn Sie Änderungen rückgängig machen oder analysieren möchten, wann genau ein Fehler aufgetreten ist. Jetzt, da wir die Struktur der Historie verstehen, lernen wir, sie zu filtern – denn in realen Projekten können Tausende von Commits vorhanden sein.
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 26 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- Commit-Historie als Projekttagebuch
- Commit-Eintrag lesen: Hash, Autor, Datum
- Der Commit-Hash – Ihr Schlüssel zur Historie
- Wie finde ich Commits eines Autors?
- Filterung nach Commit-Datum
- Suche nach Commit-Texten
- Filter kombinieren
- Problem der Lesbarkeit von Commit-Historien
- Kompakte Darstellung mit --oneline
- Verzweigungsvisualisierung mit --graph
- Vollständiges Bild mit --all
- Was ist git diff und wofür wird es verwendet?
- Vergleichen von Änderungen im Arbeitsverzeichnis
- Was ist für den Commit vorbereitet: git diff --staged
- Vergleichen beliebiger zwei Commits
- Wie man einen bestimmten Commit detailliert untersucht
- Praxis: Änderungen in einem Commit anzeigen
- Anzeigen einer bestimmten Datei in einem Commit
- Suche nach den letzten Änderungen in einer Datei
- Analyse von Fremdcode über den Verlauf
- Suche nach Einführung oder Entfernung einer Funktion
- Warum Commit-Nachrichten wichtig sind
- Struktur der perfekten Commit-Nachricht
- Conventional Commits in der Praxis
- Refactoring von schlechten Commits
- Warum 'fix'-Commits ein Anti-Pattern sind
- Atomarität von Änderungen: Ein Commit – eine Aufgabe
- git add -p: Das Rettungsseil für saubere Commits
- Zusammenfassung und Aufgabe
บทความเกี่ยวกับบทเรียนนี้
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- git log, diff, show และ blame: วิธีอ่านประวัติโปรเจกต์ใน Git
- git bisect: วิธีค้นหาคอมมิตที่ทำให้โค้ดพัง
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
- วิธีติดตั้ง Git บน Windows, macOS และ Linux
บทเรียนทั้งหมดในคอร์สนี้
- Einführung: Git vom Anfänger zum sicheren Entwickler
- Wofür braucht man eigentlich Git – und warum bekommt man ohne es keinen Job?
- Installation und Einrichtung: Git für den ersten Start vorbereiten
- Erstes Repository: init, add, commit und die Magie des Index
- Versionsgeschichte verstehen: Log, Diff, Show und Navigation durch die Vergangenheit
- Branches: Die parallele Realität Ihres Codes
- Fehler rückgängig machen: restore, reset, revert – richtig und gefährlich
- GitHub und Remote-Repositories: Ihr Code in der Cloud
- Teamarbeit: Forks, Feature-Branches und Pull-Requests
- Merge-Konflikte: Keine Panik – Verstehen und Lösen
- Git-Prozesse in realen Teams: Welchen Workflow soll man wählen?
- Fortgeschrittene Tools: Rebase, Stash, Cherry-Pick und Tags
- Abschlussprojekt: Simulation einer echten Team-Entwicklung