faecher:informatik:oberstufe:git:versionsgeschichte:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:git:versionsgeschichte:start [02.10.2024 17:34] – [Go Back in Time - es gibt offene Fragen...] Frank Schiebelfaecher:informatik:oberstufe:git:versionsgeschichte:start [15.10.2024 07:53] (aktuell) – [Die Abfolge der Commits betrachten] Frank Schiebel
Zeile 66: Zeile 66:
  
   * Was hat sich zwischen der Ausgabe des ersten log-Befehls und der, mit dem angelegten Alias verändert?   * Was hat sich zwischen der Ausgabe des ersten log-Befehls und der, mit dem angelegten Alias verändert?
-  * Mit ''git log --help'' kann man sich die Hilfe zu ''git log'' anzeigen lassen, das funktioniert auch mit anderen git-Befehlen. Kannst du die Platzhalter für die Ausgabe mit ''--pretty=format:'' in der Hilfe finden?+  * Mit ''git log %%--%%help'' kann man sich die Hilfe zu ''git log'' anzeigen lassen, das funktioniert auch mit anderen git-Befehlen. Kannst du die Platzhalter für die Ausgabe mit ''%%-%%-pretty=format:'' in der Hilfe finden?
  
 ===== Zeitmaschine ===== ===== Zeitmaschine =====
Zeile 161: Zeile 161:
 ==== Was ist HEAD? ==== ==== Was ist HEAD? ====
  
-Man muss sich die Versionsgeschichte als (verzweigte) Abfolge von Commits vorstellen, die jeweils durch ihre Commit-ID identifiziert werden. Manche Commit-IDs bekommen Namen: **Diese benannten Commits sind "Branches" und  "Tags".* Man spricht von "Referenzen auf Commits".+Man muss sich die Versionsgeschichte als (verzweigte) Abfolge von Commits vorstellen, die jeweils durch ihre Commit-ID identifiziert werden. Manche Commit-IDs bekommen **Namen**: **Diese benannten Commits sind "Branches" und  "Tags".** Man spricht von "Referenzen auf Commits".
  
 {{ :faecher:informatik:oberstufe:git:versionsgeschichte:head.png?30|}} {{ :faecher:informatik:oberstufe:git:versionsgeschichte:head.png?30|}}
-Eine besondere Referenz ist ''HEAD''. HEAD springt in gewisser Weise in der Versiongeschichte herum, und zeigt immer auf denjenigen Commit, der im Arbeitsverzeichniss gerade "ausgecheckt" ist. +Eine besondere Referenz ist ''HEAD''. HEAD springt in gewisser Weise in der Versionsgeschichte herum, und zeigt immer auf denjenigen Commit, der im Arbeitsverzeichniss gerade "ausgecheckt" ist. 
  
 Der Zustand in unserem Beispiel ist "in bunt" folgender: Der Zustand in unserem Beispiel ist "in bunt" folgender:
  
-{{ :faecher:informatik:oberstufe:git:versionsgeschichte:commits.drawio.png?500 |}}+{{ :faecher:informatik:oberstufe:git:versionsgeschichte:commits.drawio.png|}}
  
-Es gibt insgesamt also 4 Commits, das Arbeitsverzeichnis ist im Zustand von Commit ''2c70b75'' darum zeigt ''HEAD'' auf diesem Commit. Außerdem gibt es den Branch ''main'', das ist eine benannte Referenz auf den neuesten Commit mit der ID ''022bdbc''+Es gibt insgesamt also 4 Commits, das Arbeitsverzeichnis ist im Zustand von Commit ''f9353d6'' darum zeigt ''HEAD'' auf diesem Commit. Außerdem gibt es den Branch ''main'', das ist eine benannte Referenz auf den neuesten Commit mit der ID ''d7aaac4''
  
-Um die Situation des "Lösgelösten HEAD" zu verstehen, muss man sich nun klar machen, dass der Commit ''a5c28ad'' auf dem Commit ''2c70b75'' (auf den derzeit HEAD zeigt) basiert. Wenn man im derzeitigen Zustand des Arbeitsverzeichnisses etwas ändert, bekomme man ein Problem, da diese Beziehung ''a5c28ad'' basiert auf ''2c70b75'' nicht mehr eindeutig interpretierbar ist: Wo sortiert sich das ausgehend von  ''2c70b75'' veränderte Arbeitsverzeichnis in die Versionsgeschichte ein? +Um die Situation des "Lösgelösten HEAD" zu verstehen, muss man sich nun klar machen, dass der Commit ''adc15c2'' auf dem Commit ''f9353d6'' (auf den derzeit HEAD zeigt) basiert. Wenn man im derzeitigen Zustand des Arbeitsverzeichnisses etwas ändert, bekommt man ein Problem, da diese Beziehung ''adc15c2'' basiert auf ''f9353d6'' nicht mehr eindeutig interpretierbar ist: Wo sortiert sich der ausgehend von ''f9353d6'' veränderte Zustand des Arbeitsverzeichnisses in die Versionsgeschichte ein wenn man einen neuen Commit erzeugt
  
-Diese Situation wird als "detached HEAD" oder losgelöster HEAD bezeichnet. Man kann sich umsehen und Dinge ändern, wenn man anschließend jedoch wieder in der Versiongeschichte "springt" gehen diese Änderungen verloren oder landen in einem Commit der "losgelöst" ist, also nicht in einem Branch innerhalb der Versionsgeschichte enthalten ist - und das sollte man vermeiden, da man solche Commits später nur sehr schwer wiederfinden kann.+Diese Situation wird als "detached HEAD" oder losgelöster HEAD bezeichnet. Man kann sich umsehen und Dinge ändern, wenn man anschließend jedoch wieder in der Versiongeschichte "springt" gehen diese Änderungen verloren oder landen in einem Commit der "losgelöst" ist, also nicht in einem Branch innerhalb der Versionsgeschichte enthalten ist - und das sollte man vermeiden, da man solche Commits später nur schwer wiederfinden kann.
  
 ---- ----
Zeile 188: Zeile 188:
 ++++ Demonstration der Aufgabenstellung | ++++ Demonstration der Aufgabenstellung |
 <html> <html>
-<iframe title="Git Zeitmaschine - Demo der Aufgabe" src="https://tube.schule.social/videos/embed/ad38989e-43b4-4a78-8728-58fe5e2e6a74" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms" width="560" height="315" frameborder="0"></iframe>+<iframe title="Git Zeitmaschine - Demo zur Aufgabe" src="https://tube.schule.social/videos/embed/331c768e-c7fa-45ff-abf3-d0d564976f5f" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms" width="560" height="315" frameborder="0"></iframe>
 </html> </html>
  
 +https://tube.schule.social/w/7j4D8jKaiHZTDKAMGfmv1c
  
-https://tube.schule.social/w/noCdL4HaygxW9Z9YCFU5du 
 ++++ ++++
  
-Mit dem letzten Befehl ''git branch bananenfruehstueck 29babdc'' im Video wurde ein neuer Branch angelegt. In der Ausgabe von ''git log %%--all%%'' kann man das erkennen - es gibt im Zeitverlauf jetzt eine Verzweigung.+Mit dem letzten Befehl ''git branch blaubeerfruehstueck f98e6d1'' im Video wurde ein neuer Branch angelegt. In der Ausgabe von ''git log %%--all%%'' kann man das erkennen - es gibt im Zeitverlauf jetzt eine **Verzweigung**.
  
-{{ :faecher:informatik:oberstufe:git:versionsgeschichte:2024-09-24_11-41.png?500 |}}+{{ :faecher:informatik:oberstufe:git:versionsgeschichte:2024-10-07_19-24.png |}}
  • faecher/informatik/oberstufe/git/versionsgeschichte/start.1727890475.txt.gz
  • Zuletzt geändert: 02.10.2024 17:34
  • von Frank Schiebel