faecher:informatik:oberstufe:git:workflow: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:workflow:start [09.01.2020 18:01] – [Aufgabe] sbelfaecher:informatik:oberstufe:git:workflow:start [28.04.2021 21:46] (aktuell) – [Verwenden von Tags zum Springen] sbel
Zeile 1: Zeile 1:
-===== Einfacher Workflow ===== 
- 
-Der Workflow sieht jetzt einfach so aus, dass man Dateien ändert oder hinzufügt und die Änderungen in der Staging Area vorhält bis zum nächsten Commit, dann führt man ''git commit'' aus um sich die "nächste Version" zu merken. 
- 
-  * Füge im Verzeichnis ''css'' eine Datei ''style.css'' ein, die einige Informationen zur Formatierung von Überschriften enthält. 
-  * Versehe die Datei ''index.html'' mit einem HTML Grundgerüst, das die ''style.css'' Datei einbindet.((Infos zu HTML und CSS findest du im alten Wiki: https://scotty.qg-moessingen.de/itg/doku.php?id=kurs:kursstufe:html_css:start)) 
-  * Betrachte mit ''git status'' die Änderungen im Arbeitsverzeichnis. Füge fehlende Dateien zur Staging Area hinzu. Mache einen Commit. 
  
 ===== Tags als Lesezeichen ===== ===== Tags als Lesezeichen =====
  
-Man kann sich den Zustand es Repos merken als "Tag", das ist wie ein Lesezeichen - man kann sich gewissermaßen vorstellen, dass man mit ''git tag <tag-name>'' das Repo "zwischenspeichert".+Man kann sich den Zustand es Repos merken als "Tag", das ist wie ein Lesezeichen - man kann sich gewissermaßen vorstellen, dass man mit ''git tag <tag-name>'' das Repo "zwischenspeichert". (Ein Tag ist eine benannte Referenz auf einen bestimmten Commit).
  
  
    git tag -l // zeigt tags    git tag -l // zeigt tags
    git tag v1 // legt das tag v1 an    git tag v1 // legt das tag v1 an
 +   git tag -a v1.4 -m "my version 1.4" // legt einen Tag mit Kommentar an
  
-Um zu einem solchen "Lesezeichen" zurückzukehren, kann man den Tag ins lokale Repo "auschecken": 
  
-  git checkout v1+===== Zwischen Commits wechseln =====
  
-==== Task: Zurückgehen in der Zeit ====+Mit dem Befehl ''git checkout <commitid>'' kann man einen beliebigen Snapshot ins Arbeitsverzeichnis "auschecken", z.B. so:  
 + 
 +{{ :faecher:informatik:oberstufe:git:workflow:auswahl_328.png |}} 
 + 
 +Wenn man jetzt allerdings das log betrachtet, sieht man ein Problem: 
 + 
 +{{ :faecher:informatik:oberstufe:git:workflow:auswahl_329.png |}} 
 + 
 +Man sieht im log nur die Commits, die relativ zum aktuellen Snapshot in der Vergangenheit liegen! Wie soll man nun zurück zum letzten Commit gelangen? 
 + 
 +Mit ''git rev-list --all --remotes'' kann man sich alle Commits anzeigen lassen, mit ein paar Optionen siehts noch netter aus:  
 +<code> 
 +git rev-list --all --remotes --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit 
 +</code> 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 + 
 +=== (A1) === 
 + 
 +Lege dir einen Alias ''ac'' an, der alle Commits hünsch ausgibt. Springe dann zwischen deinen Commits hin und her und verfolge die Änderungen nach. Finde heraus, was bei solchen Sprüngen mit nicht versionierten Dateien im Arbeitsverzeichnis geschieht. 
 + 
 +==== Verwenden von Tags zum Springen ====
  
 Aktuellen Zustand merken: Aktuellen Zustand merken:
  
-  git tag v2+  git tag now
  
 Zielcommit raussuchen: Zielcommit raussuchen:
Zeile 35: Zeile 49:
 Umsehen - ist es das was man sich merken will? wenn ja: Tag anlegen mit ''git tag v0''. Umsehen - ist es das was man sich merken will? wenn ja: Tag anlegen mit ''git tag v0''.
  
-Nun kann man zwischen den Tags hin und her wechseln, wie man möchte. Am besten ist es natürlich, bereits beim Programmieren zu entsprechenden Zeitpunkten Tags anzulegen.+Nun kann man zwischen den Tags hin und her wechseln, wie man möchte. Am besten ist es natürlich, bereits beim Programmieren zu entsprechenden Zeitpunkten Tags anzulegen, die mit entsprechenden Kommentaren versehen sind. 
 + 
 +Wenn man einen Tag nicht mehr benötigt, kann man ihn mit dem Befehl ''git tag -d <tagname>'' löschen. Der Commit bleibt dabei erhalten, es wird nur die Referenz und ggf. der Kommentar entfernt. 
  
-==== Aufgabe ====+---- 
 +{{:aufgabe.png?nolink  |}}
  
-Java-Fingerübungen: Bearbeite alle Aufgaben auf der Seite [[ faecher:informatik:oberstufe:java:algorithmen:einfache_programme:start|einfache Java Programme]] und "speichere" deine Lösungen alle in einem neuen Repository "java-excercises-01", das du auch in deinen Account auf unsere [[https://gitea.schule.social|Gitea Instanz]] pushst. +=== (A2) ===
  
-Die einfachste Vorgehensweise dazu ist:+Gehe in deiner Webseite in der Zeit "hin und her", indem du Tags mit Kommentar setzt und zu Checkout verwendest.
  
-  * An Gitea anmelden 
-  * In Gitea das neue Repo anlegen 
-  * Das Repo auf den lokalen Rechner klonen 
-  * Im Repo arbeiten und Tags anlegen 
-  * Mit ''git push - -follow-tags'' die lokalen Änderungen am Ende auf die Gitea-Instanz synchonisieren 
  
-Dein Repo sollte am Ende die Tags ''Aufgabe1'' bis ''Aufgabe5'' haben, so dass man die Lösung der entsprechenden Aufgabe erhält, wenn man das entsprechende Tag auscheckt. Diese Aufgabe ist als Hausaufgabe auch zuhause fertig zu machen. 
  
  • faecher/informatik/oberstufe/git/workflow/start.1578589264.txt.gz
  • Zuletzt geändert: 09.01.2020 18:01
  • von sbel