Programmieren 2 05 Versionsverwaltung mit Git

Ähnliche Dokumente
Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen -

Einführung zu Git. Das Nötigste für die Studienarbeit im Modul Datenkommunikation. Ege Inanc

Einführung in Git. master. Initial commit

Git-Grundlagen für Entwickler. Thomas Claudius

Enes Kurnaz, Oliver Nagel Institut für Mathematik und Informatik. Versionsverwaltung mit Git

Softwareentwicklung I (IB) Versionsverwaltung mit Git

Arbeiten mit dem Versionsverwaltungssystem. Jannik Kramer Proseminar Werkzeuge für das wissenschaftliche Arbeiten

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Semesterprojekt Entwicklung einer Suchmaschine für Alternativmethoden zu Tierversuchen. Versionierung und Bugtracking mit GitHub

Versionsverwaltung mit Eclipse. PR1 - Medizinische Informatik (IMB) Dennis-Immanuel Czogalla

Praktikum Ingenieurinformatik (PI)

Programmieren 2 06 Git-Teamwork und Egit

Fakultät für Informatik Praktische Einführung in die Versionsverwaltung mit Eclipse

Versionskontrolle mit Subversion

Verteile Revisionskontrolle mit GIT

Versionsverwaltung mit Git

Versionsverwaltung mit git

Programmieren Vorkurs

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

git Änderungen verwalten mit git

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Versionsmanagement

Versionierung und Bugtracking mit Git(Hub)

Git in großen Projekten

Spiel, Spaß und Spannung mit Git

Versionsverwaltung mit GIT

Apache Subversion (SVN)

Konfigurationsdateien mit Git verwalten

Gitting started. Christian Neukirchen. 14dec2011

Von SVN zu Git. Daniel Willmann cbna

Die Projek*ools. Files, Git, Tickets & Time

Git. Dezentrale Versionsverwaltung im Team - Grundlagen und Workflows. Bearbeitet von René Preißel, Bjørn Stachmann

Universität Osnabrück Fachbereich Mathematik / Informatik 1. Übung Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc.

Apache Subversion (SVN)

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Inhalt. Kurzanleitung zum Arbeiten mit TU-GitLab

Versionsmanagement. Software(technik)praktikum: Vorlesung 3: Versionsmanagement

Moodle aktuell halten mit Git

Medieninformatik Praktikum. Jens Rademacher

Software-Engineering Grundlagen des Software-Engineering

WOZU VERSIONSKONTROLLE?

Git II. Dezentrale Versionsverwaltung im Team

Fakultät für Informatik Praktische Einführung in die Versionsverwaltung mit Eclipse

Revisionskontrollsystem GIT

Versionsverwaltung von Softwareartefakten. Dr. Thorsten Arendt Marburg, 05. November 2015

Versionsverwaltung mit SVN

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

Dezentrale Versionsverwaltung

Versionsverwaltung mit Git

Software Engineering in der Praxis

Einführung in Git. Dirk Deimeke. 19. August My own IT. ddeimeke (My own IT) Einführung in Git 19. August / 23

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Versionsverwaltung mit git

Installation von Git für unsere OpenDCC/Fichtelbahn Entwickler Stephan Bauer, Christoph Schörner, Andreas Kuhtz

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme

DNUG FN TOBIAS ALLWEIER

TortoiseGit Step by Step Step 1: git for windows herunterladen und installieren.

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Linux Cafe Referent: Bernd Strößenreuther

Mitmachen bei Git(Hub)-Projekten!

Kommandozeile und Batch-Dateien. Molekulare Phylogenetik Praktikum

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Grundkurs C++ Buildsysteme Versionsverwaltung mit git

Praktische Einführung in die Versionsverwaltung mit Eclipse

Thomas Rau (mit Material von Peter Brichzin) Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

Having fun with GIT. Chris Wewerka. Software Development Specialist

Versionkontrolle mit git

git verteilte Versionskontrolle

git Workshop Matthias Beyer Hochschule Furtwangen University matthias. hs-furtwangen. de beyermatthias. de 19.

Igitt?! Git für Anfängerinnen und Anfänger Linux höchstpersönlich.

Apache Subversion (SVN)

Einführung in git. Johannes Gilger & Matthias Lederhofer. Rechen- und Kommunikationszentrum der RWTH Aachen Network Operation Center. 14.

Transkript:

Programmieren 2 05 Versionsverwaltung mit Git Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1

... gestern lief es noch!!! neues Feature eingebaut die ganze Nacht am Code entwickelt und plötzlich läuft gar nichts mehr! 2

Versionskontrolle 1: Zurück zum lauffähigen Stand Zurück zum lauffähigen Stand, aber wie? Dateien wurden verändert manche mehrfach manche gar nicht Unübersichtliche Lage! Tricks: Nichts ändern oder löschen, alte Version auskommentieren und ersetzen (interner Backup per Datei) Backup der letzten lauffähigen Version als Kopie (Backup per Version) Hilfsmittel mit Historie, z.b. Dropbox (externer Backup per Datei) Leider auch nicht übersichtlich... 3

Strukturiertes Backup im (lokalen) Repository commit Working Document (local) Repository Commit-Objekt: klein, binär, benannt nicht veränderbar, mit Kommentar, commit commit Working Tree (local) Repository 4 4

Strukturiertes Backup im lokalen Git-Repository add add commit Working Tree Stage (local) Repository Commit-Objekt ist immer ein ganzer WorkingTree Veränderte Objekte werden zunächst in der Stage zusammengefasst Commit kann eine sinnvolle Einheit von mehreren Dateien sein 5

Repository-Struktur: Kette von Commit-Objekten Kommentar Autor #-Tag BLOB (Working Tree) Commit-Objekt: - klein, binär, unveränderlich - benannt mit Hash-Tag HEAD master aktuelles Commit-Ziel Branch "master" a142b4 3879cd dbc45f 2376a3 zurück nach 3879cd: aktuellen Stand sichern: git commit alten Stand herstellen: git checkout 3879cd 6 6

Benannte Versionen: Tags HEAD master a142b4 3879cd dbc45f 2376a3 UE1 UE2 alte Version herstellen: git checkout 3879cd statt 3879cd lieber ein sinnvoller Name für die Version: tag definieren: git tag UE2 m 'Abgabe Uebung 2' tag definieren: git tag UE1 m 'Abgabe Uebung 1' 3879cd UE1 herstellen: git checkout UE1 7 7

Normaler Workflow CRUD auf dem Working Tree add add commit tag UE2 Zusammenfassung: Arbeiten wie gewohnt auf dem Working Tree "Staging" von geänderten Dateien mit add Das ganze aktuelle Verzeichnis: git add. Übertragen ins Repository mit commit ggf. Tag setzen mit tag Überschreiben des letzten commit mit commit --amend (Korrektur) 8

Versionskontrolle über mehrere Rechner Naheliegend: Repository auf einen Server verlagern Nicht mit Git! add, commit, checkout sind Kommandos auf einem lokalen Repository Weiteres Git-Repository (Kopie) auf einem Server "bare": ohne Working Tree "origin" lokale Repos mit Working Tree, Stage Git Client remote Repo "bare" Git Server 9

Versionskontrolle im Team Genauso: Zentrales Repo auf einem Server Lokale Repos bei den Team-Mitgliedern "origin" 10

Arbeiten mit Git Installieren: Git Client für Windows/MacOs Benutzen aus der Kommandozeile oder der Git Shell mit einem GUI-Client z.b. TortoiseGit (Windows) Sourcetree (MacOS) aus einer IDE heraus z.b. aus Eclipse mit dem EGit-Pugin 11

EINSCHUB: Die Kommandozeile Die Kommandozeile bietet direkten Zugang zum BS Ausgangspunkt ist das Dateisystem Aktuelles Arbeitsverzeichnis die darin liegenden Dateien kann man auflisten, erzeugen, löschen, umbenennen, ausführen Relativer Pfad ist der Punkt:. Übergeordnetes Verzeichnis ist Punkt -Punkt:.. um eine Datei uas einem anderen Verzeichnis auszuführen, muss man ihren Pfad mit angeben Navigation mit "cd <Pfad> " wechslelt man das Arbeitsverzeichnis z.b. "cd.." - ein Verzeichnis nach oben z.b. "cd dir2" oder "cd./dir2" in das Unter verzeichnis dir2 12 12

Windows-Kommandozeile Aufruf über "Zubehör" oder "cmd" im Suchfeld die wichtigsten Befehle: cd - Wechsel des Arbeitsverzeichnisses D: - Wechsel ins Laufwerk D dir - Inhalt des verzeichnisses auflisten md/mkdir - Verzeichnis erstellen del/rm - Datei löschen rd - Verzeichnis löschen datei - Ausführen der Datei "datei.exe" oder "datei.bat", sofern vorhanden echo xyz - xyz in die Konsole schreiben echo xyz > x.txt - xyz in die Datei x.txt schreiben (ggf. neu anlegen) 13 13

Systemvariablen Es gibt einige Variablen, mit denen man Pfade systemweit sichtbar machen kann: PATH Liste von Pfaden mit ; getrennt (ohne Leerzeichen) Dateien dieser Pfade sind überall bekannt, d.h. sie können von überall ohne Pfadangabe gerufen werden zur Git-Installation gehört, das Verzeichnis mit der git.exe dem Path hinzuzufügen CLASSPATH List von Pfaden, die in allen Java-Programmen bekannt sind JAVAHOME etc. Verzeichnis, in dem die (zentrale) Java-Installation liegt. 14 14

Die wichtigsten Git-Befehle Man braucht im Alltag nur eine Handvoll von Befehlen, init, clone, add, commit, tag, branch, fetch, push, pull, diff, merge, checkout,... Eine sehr gute, knappe Zusammenfassung bietet Atlassian: https://confluence.atlassian.com/display/stash/basic+git+commands 15 15

.gitignore Nicht alle Dateien im Working Tree müssen ins Repo z.b..class-dateien nicht oder das gesamte bin-verzeichnis.gitignore ist eine datei im Wurzelverzeichnis des WorkingTree enthält Dateien und Muster, die nicht ins Repo sollen z.b. *.class jeweils auf einer neuen Zeile.gitignore committen beim commit und bei push werden die angegebenen Dateien ignoriert. 16 16

Kleine Übung in der Konsole Volgella Git Tutorial 1. Wechsel in Wurzelverzeichnis 2. neues Verzeichnis "local" anlegen, Wechsel ins neue Verzeichnis 3. zwei neue Dateien erzeugen 4. neues Verzeichnis AB anlegen, darin eine neue Datei 5. mit git init zum Verzeichnis local ein Repo anlegen. 6. mit git add a oder git add. alles "stagen" 7. mit git commit m "initiales Commit" alles ins Repo schreiben 8. "Entferntes" Repo auf der lokalen Festplatte erzeugen: - mit cd local ins lokale Repo wechseln 9. - mit git clone bare...\remote.git eine remote-kopie anlegen (Warnung..) 10. Das lokale Repo mit dem entfernten verbinden: git remote add origin..\remote.git 11. lokal eine Datei ändern (echo...) 12. stage, commit 13. git push origin 17

... ctd. 13. Weiteres lokales Repo durch Clonen anlegen: 14. Verzeichnis local2 anlegen 15. mit cd dorthin wechseln 16. mit git clone../remote.git repo-kopie anlegen 17. in local2 Dateibaum ansehen 18. in local2 eine Datei ändern (z.b. löschen) 19. add, commit, push 20. in local pull 21. in local Dateibaum ansehen 22.... usw Workflow trainieren. 18 18

... nächstes Mal: Branching, Konfliktlösung Git aus Eclipse heraus benutzen 19 19