faecher:informatik:oberstufe:git:programmieren: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:programmieren:start [18.03.2025 19:56] – [Einen weiteren Zweig (Branch) erstellen] Frank Schiebelfaecher:informatik:oberstufe:git:programmieren:start [18.03.2025 20:40] (aktuell) Frank Schiebel
Zeile 15: Zeile 15:
   * Wenn man ein funktionierendes Programm hat, und Änderungen vornehmen möcht, bei denen man sich unsicher fühlt, ob die geplante Programmierung klappt, kann man sich den aktuellen Stand als Commit sichern.   * Wenn man ein funktionierendes Programm hat, und Änderungen vornehmen möcht, bei denen man sich unsicher fühlt, ob die geplante Programmierung klappt, kann man sich den aktuellen Stand als Commit sichern.
   * Vorsicht ist bei "Backup-Commits" geboten, z.B. immer am Ende einer Unterrichtsstunde, denn in diesem Fall läuft man Gefahr, Code in einem Snapshot zu sichern, der nicht funktioniert - das ist natürlich suboptimal. Das sollte man nur mit gutem Grund tun, beispielsweise wenn man den Code auf einen externen Server "pushen" möchte, um zuhause weiter zu arbeiten - dazu später mehr.    * Vorsicht ist bei "Backup-Commits" geboten, z.B. immer am Ende einer Unterrichtsstunde, denn in diesem Fall läuft man Gefahr, Code in einem Snapshot zu sichern, der nicht funktioniert - das ist natürlich suboptimal. Das sollte man nur mit gutem Grund tun, beispielsweise wenn man den Code auf einen externen Server "pushen" möchte, um zuhause weiter zu arbeiten - dazu später mehr. 
- 
-===== Übung ===== 
- 
-Wir erstellen ein Bluej Projekt, das wir mit git verwalten wollen. Dabei verwenden wir zunächst nicht die eingebaute git Funktionalität von Bluej, hier soll es darum gehen, wie man mit einfachen Verzweigungen (Branches) arbeiten kann. Du kannst das Beispiel einfach nachvollziehen, wir verwenden einfach die Einstiegsübungen von dieser [[faecher:informatik:oberstufe:java:algorithmen:uebungen01:start|Wiki-Seite]].  
- 
-  * Lege ein neues Bluej-Projekt an. 
-  * Öffne eine Kommandozeile im Projektverzeichnis 
-  * Initialisiere ein git-Repository im Projektverzeichnis. 
- 
-Lösungsvorschläge zu den Programmieraufgaben findest du auf [[faecher:informatik:oberstufe:java:algorithmen:uebungen01:loesungsvorschlaege |dieser Seite]], von dort kannst du Lösungen für einzelne Aufgaben übernehmen, ohne alles jetzt programmieren zu müssen.So kannst du dich auf das Arbeiten mit git konzentrieren. 
- 
----- 
-{{:aufgabe.png?nolink  |}} 
-=== (A1) === 
- 
-Überhemne den "langen" Lösungsvorschlag für die Modulo-Methode in dein Projekt. Teste die Funktionalität und erstelle einen ersten Commit. 
- 
-{{ :faecher:informatik:oberstufe:git:programmieren:bildschirmfoto_20250318_193203.png?600 |}} 
- 
-Ändere die Modulol-Methode jetzt so ab, dass sie dem zweiten, sehr kurzen Lösungsvorschlag entspricht. Erstelle einen weiteren Commit mit sinnvoller Commit Message. 
- 
-Im Ergebnis könnte das dann so aussehen: 
- 
-<code bash> 
-$ git lg  
-* b664f26 - (HEAD -> main) Modulo Methode gekürzt (vor 13 Sekunden)  
-* 143f0be - Erster commit (vor 6 Minuten)  
-</code> 
- 
-"Löse" die Aufgabe 2, verfahre dabei analog zur Modulo Methode: Übernehme zunächst den ersten Lösungsvorschlag, erstelle einen Commit, ändere die Methode dann so, dass sie dem zweiten Lösungsvorschlag entspricht und erstelle dann einen weiteren Commit. 
- 
-Als Zwischenergebnis erhält man einen Verlauf wie den Folgenden:  
- 
-<code bash> 
-$ git lg  
-* 118e70a - (HEAD -> main) Tauschen Methode wie in Vorschlag 2 (vor 3 Sekunden)  
-* 99ba536 - Tauschen Methode wie in Vorschlag 1 (vor 25 Minuten)  
-* b664f26 - Modulo Methode gekürzt (vor 30 Minuten)  
-* 143f0be - Erster commit (vor 35 Minuten)  
-</code> 
- 
-==== Einen weiteren Zweig (Branch) erstellen ==== 
- 
-Erstelle mit dem Befehl ''git branch  developement'' einen "Entwicklungszweig", in dem du neue Dinge testen kannst, ohne den Code in ''main'' zu verändern, wechsle dann auf den neuen Branch:  
- 
-<code bash> 
-$ git branch developement 
-$ git checkout developement  
-Zu Branch 'developement' gewechselt 
-$ git branch 
-* developement    
-  main 
-</code> 
- 
-Der Branch mit dem Sternchen ist der aktuelle Zweig. 
- 
- 
- 
----- 
-{{:aufgabe.png?nolink  |}} 
-=== (A2) === 
- 
-Füge eine Lösung für die Aufgabe 3 am Ende deiner Klassendatei im Projekt ein und erstelle einen Commit. Betrachte dann den Verlauf deiner Commits. 
- 
-<code bash> 
-$ git lg --all  
-* aba7dbd - (HEAD -> developement) Pyramide (vor 11 Sekunden)  
-* 118e70a - (main) Tauschen Methode wie in Vorschlag 2 (vor 22 Minuten)  
-* 99ba536 - Tauschen Methode wie in Vorschlag 1 (vor 47 Minuten)  
-* b664f26 - Modulo Methode gekürzt (vor 51 Minuten)  
-* 143f0be - Erster commit (vor 57 Minuten)  
-</code> 
- 
-Auf den ersten Blick ist keine "Verzweigung" erkennbar - woran kann man an der Ausgabe dennoch erkennen, dass es eine Verzweigung im Verlauf der Commits gibt? 
- 
-++++ Erklärung | ''HEAD'' zeigt auf ''developement'', ''main'' ist im Verlauf "zurückgeblieben". ++++ 
- 
-Ein neue Anforderung macht es jetzt nötig, dass im Hauptentwicklungszweig (''main'') sofort die Lösung für Aufgabe 4 eingefügt wird. 
- 
-Gehe dazu wie folgt vor:  
- 
-  * Stelle sicher, dass dein Arbeitsverzeichnis "clean" ist, also keine Änderungen hat, dich noch nicht commited sind. 
-  * Wechsle zum ''main'' Branch: ''git checkout main'' 
-  * Öffne in BlueJ deine Klassendate neu - du erkennst, dass die Lösung für das Pramidenvolumen jetzt wieder verschwunden ist. 
-  * Füge den Lösungsvorschlag für Aufgabe 4 **direkt nach dem Konstruktor**((Nicht am Ende)) in deine Klasse ein und erstelle einen Commit. 
-  * Betrachte den Verlauf der Commits mit ''git lg --all'' 
- 
- 
-Jetzt ist die Verzweigung direkt erkennbar:  
- 
-<code bash> 
-$ git lg --all  
-* 9b12ec6 - (HEAD -> main) Alterstest (vor 3 Sekunden)  
-| * aba7dbd - (developement) Pyramide (vor 16 Minuten)  
-|/   
-* 118e70a - Tauschen Methode wie in Vorschlag 2 (vor 37 Minuten)  
-* 99ba536 - Tauschen Methode wie in Vorschlag 1 (vor 62 Minuten)  
-* b664f26 - Modulo Methode gekürzt (vor 67 Minuten)  
-* 143f0be - Erster commit (vor 72 Minuten)  
-</code> 
- 
- 
- 
----- 
-{{:aufgabe.png?nolink  |}} 
-=== (A3) === 
- 
-  * Wechsle wieder zum ''developement'' Branch  
-  * Füge die Lösungen für die Aufgaben 5 und 6 am Ende deiner Klasse ein 
-  * Erstelle nach jeder neuen Lösung einen Commit 
- 
-Deine entstehende Commit-History sollte in etwas so aussehen:  
- 
-<code> 
-$ git lg --all  
-* 74b05e3 - (HEAD -> developement) schulnoten (vor 13 Sekunden)  
-* 4370307 - Geradengleichung (vor 73 Sekunden)  
-* aba7dbd - Pyramide (vor 20 Minuten)  
-| * 9b12ec6 - (main) Alterstest (vor 5 Minuten)  
-|/   
-* 118e70a - Tauschen Methode wie in Vorschlag 2 (vor 42 Minuten)  
-* 99ba536 - Tauschen Methode wie in Vorschlag 1 (vor 67 Minuten)  
-* b664f26 - Modulo Methode gekürzt (vor 71 Minuten)  
-* 143f0be - Erster commit (vor 77 Minuten)  
-</code> 
- 
-==== Merging ==== 
- 
-Deine Entwicklungsarbeiten sind nun abgeschlossen, du möchstest die Änderungen beider Zweige wieder zusammenführen (mergen). 
- 
-Das prinzipielle Vorgehen dabei ist folgendes: 
- 
-  * Wechsle auf den Branch in den du die Änderungen zusammenführen möchtest 
-  * Führe dort den Befhel ''git merge <BRANCHNAME>'' aus, wobei ''<BRANCHNAME>'' der Branch ist, den du in den aktuellen Branch einfließen lassen willst. 
- 
- 
  
  
  • faecher/informatik/oberstufe/git/programmieren/start.1742327772.txt.gz
  • Zuletzt geändert: 18.03.2025 19:56
  • von Frank Schiebel