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

Ähnliche Dokumente
Git-Grundlagen für Entwickler. Thomas Claudius

Praktikum Ingenieurinformatik (PI)

Software Engineering

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

Git II. Dezentrale Versionsverwaltung im Team

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

Git - Fast Version Control System

Von SVN zu Git. Daniel Willmann cbna

git Änderungen verwalten mit git

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

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

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Einführung in Git. master. Initial commit

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

Softwareentwicklung I (IB) Versionsverwaltung mit Git

Versionsverwaltung mit Git

Medieninformatik Praktikum. Jens Rademacher

Versionsverwaltung mit Git. Eine Einführung ins Source Code Management

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

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

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

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

Versionsverwaltung mit GIT

Versionkontrolle mit git

Revisionskontrollsystem GIT

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Moodle aktuell halten mit Git

Programmieren 2 06 Git-Teamwork und Egit

Seminar. Bachelor Wirtschaftsinformatik

Programmieren 2 05 Versionsverwaltung mit Git

Versionsverwaltung mit git

Das Tübinger Softwareprojekt

Linux Cafe Referent: Bernd Strößenreuther

Versionskontrolle mit Git

Überblick. Middleware Cloud Computing Übung. Übungsaufgaben. Termine und Ansprechpartner. Organisatorisches

Apache Subversion (SVN)

Versionierung und Bugtracking mit Git(Hub)

Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen -

Gitting started. Christian Neukirchen. 14dec2011

git verteilte Versionskontrolle

Praktische Einführung in die Versionsverwaltung mit Eclipse

Middleware Cloud Computing Übung

Versionsverwaltung mit Git

Apache Subversion (SVN)

Versionierung für OpenSourcler

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

Vorlesung Unix-Praktikum

Versionsverwaltung mit SVN

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

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

git Alexander Bernauer Rico Schiekel

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

Dr. R. Guderlei exxcellent solutions gmbh Tim Felgentreff HPI. Versionsmanagement. Zentral oder Verteilt?

Verteile Revisionskontrolle mit GIT

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

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

WOZU VERSIONSKONTROLLE?

Dezentrale Versionsverwaltung

eclipse - EGit HowTo

Spiel, Spaß und Spannung mit Git

Versionsverwaltung mit git. Christoph Knabe FB VI

Konfigurationsdateien mit Git verwalten

Software Engineering in der Praxis

CVS-Einführung. Sebastian Mancke,

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

Einführung in Subversion

Tutorium SS17 EINFÜHRUNG + BREAKOUT

Apache Subversion (SVN)

Einführung in Subversion

Versionskontrollsysteme

Git in großen Projekten

Git eine kurze Einführung. Malte Schmitz ~ Mai 2012

Softwareentwicklungspraktikum Android-Programmierung

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

Git - Grundlagen und Anwendungen

Git-Zusammenfassung. Autor: Michael Merz 1. Version vom

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

Arbeiten mit Git. Member of the Helmholtz-Association. 28. April 2015 Ingo Heimbach PGI/JCNS

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Versionsverwaltung mit Mercurial für Einsteiger

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

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

Git-Workshop, Teil I

Deployment Deployment Seite 1 / 25

Wichtige Git-Befehle

Git Eine Einführung. LinuxTag 2013, Berlin. Julius Plenz. 22. Mai 2013

Einstieg in Git. Lukáš Kubánek

Versionsverwaltung mit git: Warum und wie.

Git eine kurze Einführung

Distributed Source Code Management mit git

Verlässliche Echtzeitsysteme

Mapra: C++ Teil 3. Felix Gruber, Michael Rom. IGPM, RWTH Aachen. 10. Mai 2016

Versionskontrolle. Vortrag im Master-Praktikum MindStreams Sommersemester Michael Fiedler 30.

Einführung in Subversion

Verlässliche Echtzeitsysteme

Softwaretechnologie -Wintersemester 2012/2013- Dr. Günter Kniesel

Mitmachen bei Git(Hub)-Projekten!

Transkript:

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

Inhalt Einführung - Was bedeutet Versionsverwaltung? Git - Geschichte - Funktionsweise - Terminologie erste Schritte mit Git Git zur Zusammenarbeit benutzen - Syncing - Branches

Was bedeutet Versionsverwaltung? System zum Management der Änderung von Dokumenten, Dateien und anderen Sammlungen von Daten Einsatz vor allem in der Softwareentwicklung Hauptaufgaben einer Versionsverwaltung: - Dokumentationsfunktion - Wiederherstellungsfunktion - Koordination des Zugriffs auf Dokumente und der Arbeit an einem Projekt

Git - Beginn der Entwicklung von Linus Torvalds im April 2005 - Ersatz für BitKeeper in der Linux- Kernel-Entwicklung - verteilte Versionkontrolle - geschrieben in C - unter GNU GPL Lizenz - verfügbar für fast alle unixoiden Betriebsysteme - Windowsportierung existiert

Terminologie Branch - Abspaltung von einer ursprünglichen Version der Entwicklung - hat eigene Versionsgeschichte Merging - Zusammenführen von zwei Branches - Fast-Forward-Merging und 3-Way-Merging Fork - neuer Branch in unabhängiger Versionsverwaltung Master - Hauptentwicklungszweig - unterscheidet sich technisch nicht von anderen Branches

Funktionsweise Inhalte eines Projektes liegen in Verzeichnissen (Repositorys) Änderungen werden in Arbeitskopie durchgeführt Übertragen einer Version aus einem Repository in die Arbeitskopie wird Checkout genannt das Übertragen der Änderungen in der Arbeitskopie in das Repository wird Commit genannt Git verwendet verteilte Versionsverwaltung, d.h. jeder Bearbeitende verfügt über eine eigene Kopie des Repositorys incl. lokaler Versionsgeschichte und Branchstruktur der Austausch von Daten zwischen Repositorys ist möglich zudem ist Branching und Forking ein integraler Bestandteil von Git

Setting up a repository git init - Erstellt Git Repository bare Repositories - Erstellt schreibgeschützte Git Repository mit der --bare flag git clone - Kopiert vorhandenes Repository git config - Konfiguration der Git Installation

Saving changes git add - Fügt die Änderungen zum Sammelpunkt(staging area) hinzu git commit - Führt die Änderungen durch, die zu der staging area hinzugefügt wurden

Inspecting a repository git status - Zeigt an, welche Änderungen in der staging area/arbeitsordner durchgeführt wurden und welche Dateien nicht rückverfolgt werden git log - Zeigt die verbindlichen Änderungen an

Undoing changes git checkout - Prüft Dateien & commits git revert - Hebt einzige Änderung(commit) auf git reset - Geht zu einem früheren Zustand git clean - Entfernt Dateien die nicht rückverfolgt werden können

Rewriting history git commit --amend - editiert frühere Änderung(commit) git rebase - Ändert die Position von einem Zweig(Branch) mit der -i flag können detaillierte Änderungen durchgeführt werden

Git zur Zusammenarbeit benutzen Syncing - git remote - git fetch/ git pull - git push Branches - git branch - git checkout - git merge

Syncing - git remote - Austausch von Informationen zwischen Repositorys erfolgt nicht automatisch - Verwaltung von Remote-Verbindungen zu anderen Repositorys - bei Verwendung von git clone wird automatisch eine Remote-Verbindung zu geklonten Repo angelegt - auch Verbindung zu Repositorys von anderen Bearbeitenden kann von Vorteil sein

Syncing - git fetch/git pull git fetch - Abrufen von Branches aus Remote-Repos - Commits aus Remote-Verbindungen können betrachtet und bewertet werden - Remote-Branches können in das lokale Arbeitsverzeichnis gemerged werden git pull - Zusammenfassung von git fetch und git merge zu einem Befehl

Syncing - git push - Commits aus dem lokalen Repository in Remote-Repository exportieren - häufigster Anwendungsfall ist das pushen in ein zentrales Projektrepository - zwischenzeitliche Änderungen im Remote-branch könnten durch git push überschrieben werden - git erlaubt daher nur pushes in Remote- Branches, wenn merge-prozess fast forward für den Remote-branch ist

Branches - git branch mit git branch können Branches erstellt, umbenannt und gelöscht werden integraler Bestandteil der Arbeit mit Git Änderungen im Repo können abgekapselt behandelt werden Master-Branch kann vor instabilen oder fehlerhaftem Code bewahrt werden mit git branch -d [branch name] können Branches gelöscht werden

Branches - git checkout mit git checkout [existing_branch] kann zwischen den lokalen Branches gewechselt werden ausgewählter Branch wird in das Arbeitsverzeichnis übertragen mit git checkout [new_branch] wird ein neuer Branch erstellt und in das Arbeitsverzeicchnis übertragen erlaubt das parallele Bearbeiten von verschiedenen Features in einem Repository

Branches - git merge mit git merge [branch] können Branches zusammengefügt werden benannter Branch wird in das aktuelle Verzeichnis gemerged, der benannte Branch bleibt unverändert abhängig von der Revisionsnummer des Verzeichnisses wird zwischen Fast- Forward-Merge und 3-Way-Merge unterschieden Git wählt den Merge-Algorithmus selbstständig aus FF-Merging oft bei kleineren Änderungen angewendet 3-Way-Merging wird oft zur Integration von Features mit längerer Entwicklungszeit verwendet