Programmierpraktikum SS’15
Annette Bieniusa
Git und Github
• Git ist ein dezentrales System zur
Versionsverwaltung
– Jeder Kollaborateur hat seine eigene Kopie
– Änderungen erfolgen zunächst lokal (auch ohne
Netzwerkzugriff)
– Später werden sie an einen Server übermittelt und
so für die anderen zugänglich
• Github ist ein webbasierter Hosting-Dienst für
Git-Projekte
Typischer Workflow in Git
Staging
area
Working
directory
Local repo
Remote repo
git add
git commit
git push
git fetch
git fetch
git merge
Wie arbeitet man mit Git?
• [Initialer Checkout: Heute gemeinsam]
1. git pull (damit der Workspace up-to-date ist)
2. Arbeit an dem Projekt
3. git commit + push (mit Commit-message, die
beschreibt, was implementiert wurde)
–
–
Falls fast-forward klappt: Fertig!
Andernfalls: [rejected – non-fast forward]
•
•
•
•
–
Pull Repository
Automatischer oder manueller Merge (bei Konflikten)!
git add
git commit + push
Video:
https://www.youtube.com/watch?v=HZEb0rZk4Y8
Voraussetzungen
• Eclipse
– Eclipse IDE for Java Developers
– Version: Eclipse Luna SR2 4.4.2
• Java
– JDK 1.8
• Github-Account (Name + Passwort)
• Achtung: Eclipse verlangt u.U. eine ältere JavaVersion; in diesem Fall müssen mehrere JDKs
installiert werden!
Setup: Git in Eclipse
• Hinzufügen des Github Accounts zu Eclipse:
– Window -> Preferences -> Team -> Git ->
Configuration
– Dort eintragen unter user:
• email: [email protected]
• name: Annette Bieniusa
– Unter Git:
• Oben: Default repository folder: <Verzeichnis>
Anzeigen der Git toolbar unter Eclipse
• Window → Customize perspective...
• Auswählen von Git and Git Navigation Actions
im Command Groups Availability tab.
• Menü hat jetzt einen Eintrag “Git” sowie
einige Buttons zusätzlich vorhanden
Initialer Checkout des Projekts
• File -> Import -> Git -> Projects from Git
• Dann: Clone URI
• Im Dialog “Source Git Repository”:
– URI:
https://github.com/SoftechUniKL/<ProjektName>.git
– Protocol: https
– User und Password (+ Store in Secure Store)
Aufgabe
• Machen Sie sich mit dem Inhalt des
Projektstubs vertraut!
– Welche Klasse übernimmt welche Aufgabe?
– Verwendete Libraries:
• Swing
[http://docs.oracle.com/javase/tutorial/uiswing/compo
nents/index.html]
• JFreeChart [http://www.jfree.org/jfreechart/]
• OpenCSV [http://opencsv.sourceforge.net]
• Erste Erweiterung: Hinzufügen von weiteren
Ausgaben!