Dezentrale Versionsverwaltung



Ähnliche Dokumente
Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Apache Subversion (SVN)

Von SVN zu Git. Daniel Willmann cbna

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

Medieninformatik Praktikum. Jens Rademacher

Git II. Dezentrale Versionsverwaltung im Team

Praktikum Ingenieurinformatik (PI)

Moodle aktuell halten mit Git

Konfigurationsdateien mit Git verwalten

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

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

Versionierung und Bugtracking mit Git(Hub)

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

Git. Dezentrale Versionsverwaltung im Team Grundlagen und Workflows. Rene Preißel Björn Stachmann. 2., aktualisierte und erweiterte Auflage

Git in großen Projekten

Versionsverwaltung mit git. Christoph Knabe FB VI

Git - Fast Version Control System

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

git Änderungen verwalten mit git

Linux Cafe Referent: Bernd Strößenreuther

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

Einführung in Subversion

Versionsverwaltung mit SVN

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

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

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

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

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

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Subversion. 17. Oktober Subversion. Norbert Perk. Warum Versionsverwaltung? Wie funktioniert. Was ist Subversion? Subversion- Server.

Erfolgreicher Ums9eg auf Git

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

Kurzanleitung zu. von Daniel Jettka

Deployment Deployment Seite 1 / 25

Abhängigkeiten und Git

Programmieren 2 06 Git-Teamwork und Egit

WOZU VERSIONSKONTROLLE?

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

Git-Grundlagen für Entwickler. Thomas Claudius

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Versionsverwaltung mit Mercurial für Einsteiger

Einfu hrung in Subversion mit TortoiseSVN

FL1 Hosting FAQ. FL1 Hosting FAQ. V1.0 (ersetzt alle früheren Versionen) Gültig ab: 18. Oktober Telecom Liechtenstein AG

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

Seminar. Bachelor Wirtschaftsinformatik

Einführung in Git. master. Initial commit

Spiel, Spaß und Spannung mit Git

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Verteile Revisionskontrolle mit GIT

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Apache Subversion (SVN)

IM Online help Stand April 2015

Übung - Datensicherung und Wiederherstellung in Windows Vista

NEUE FUNKTIONEN T O P H O T E L P R O J E C T S - D a t e n b a n k

1 Zugang zum GIT Repository

Wie benutzt man TortoiseSVN

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

Versionskontrollsysteme

CVS-Einführung. Sebastian Mancke,

Teamschool Installation/ Konvertierungsanleitung

Benutzerverwaltung Business- & Company-Paket

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

Installationsanleitungen

Das Einzelplatz-Versionsupdate unter Version Bp810

Powermanager Server- Client- Installation

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Software Engineering in der Praxis

TYPO3 CMS 6.2 LTS. Die neue TYPO3- Version mit Langzeit- Support

eprints-anwendertreffen 2013

Patch Management mit

SJ OFFICE - Update 3.0

SharePoint Demonstration

FILEZILLA HANDBUCH

Quickstep Server Update

Datensicherung und Wiederherstellung

pero SIMconfigBackup Inhaltsverzeichnis Benutzerdokumentation ( für v1.0)

Sichern der persönlichen Daten auf einem Windows Computer

Updatehinweise für die Version forma 5.5.5

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

CVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS

Sophia Business Leitfaden zur Administration

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

HSR git und subversion HowTo

Anleitung Captain Logfex 2013

FTP-Server einrichten mit automatischem Datenupload für

Inkrementelles Backup

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

Document Management. Überblick DM

Tipps und Tricks zu Netop Vision und Vision Pro

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, , Berlin

Erste Schritte mit Sharepoint 2013

Dokumentation PuSCH App. windows-phone

Ihr CMS für die eigene Facebook Page - 1

Transkript:

Dezentrale Versionsverwaltung mit GIT with that guy 14.08.2012 Lars Kumbier 1

Versionsverwaltung? 14.08.2012 Lars Kumbier 2

Versionsverwaltung? Speichern unterschiedlicher Entwicklungsschritte (oder Versionen) von $stuff Üblicherweise Trennung zwischen Versionsinformation / Metadaten sog. Repository Zu versionierenden Daten sog. Working Tree Gibt's schon ewig Manuelle Versionsverwaltung: ThesisV1.odt, ThesisV2.odt, ThesisV3.odt, 14.08.2012 Lars Kumbier 3

Warum Versionsverwaltung? Sicherung von Zwischenschritten / Backup Dokumentation des Herstellungsprozesses Einfaches Experimentieren durch Branching Mehr Metainformationen: Wann wurde was warum geändert? Ermöglichung effektiver Zusammenarbeit ohne Datenverlust (A und B schreiben nacheinander auf eine Datei in einem Shared Medium letzter Schreibvorgang gewinnt) 14.08.2012 Lars Kumbier 4

Workflows 14.08.2012 Lars Kumbier 5

Zentrale Versionsverwaltung Ein zentraler Server (genauer: ein zentrales Repository) Client speichert keine Versionierungsdaten Rein zentralistisches Konzept Clients haben Schreib- und Leseberechtigung auf dem Repository Public Repository Client Client Client 14.08.2012 Lars Kumbier 6

Dezentrale Versionsverwaltung Anarchie Jeder Client pflegt eigenes Repository Clients haben nur auf eigenes Repo Schreibzugriff Austausch von Daten über Pull-Requests (bei öffentlichen Repositories) Patchsets (bei privaten Repositories) Absolut Dezentrale Entwicklung 14.08.2012 Lars Kumbier 7

Dezentrale Versionsverwaltung: Gemeinsamer Maintree Gemeinsames Repository für die Hauptentwicklung Üblicherweise von wenigen Personen betreut, die Code einpflegen ( Integration Manager ) - nur diese haben Schreibzugriff auf das Gemeinsame Repository Abgesegneter Code wird veröffentlicht 14.08.2012 Lars Kumbier 8

Dezentrale Versionsverwaltung: Gemeinsamer Maintree Gemeinsames Repository für die Hauptentwicklung Üblicherweise von wenigen Personen betreut, die Code einpflegen ( Integration Manager ) - nur diese haben Schreibzugriff auf das Gemeinsame Repository Abgesegneter Code wird veröffentlicht Clients ziehen Updates aus dem Gemeinsamen Repository 14.08.2012 Lars Kumbier 9

Dezentrale Versionsverwaltung: Gestaffeltes gemeinsames Repo Hierarchie aus Integration Managern pflegt jeweils einen Teil Verteilung der Verantwortlichkeiten und Lasten auf mehrere Schultern Beispielsweise beim Linux Kernel eingesetzt 14.08.2012 Lars Kumbier 10

Dezentrale Versionsverwaltung: Variante: Programm-Gatekeeper Gemeinsames Repository für die Hauptentwicklung Automatischer Test von Code auf Korrektheit (z.b. durch Test Framework oder Ablehnung von Code mit @ToDo-Tags) #!/bin/bash for i in $(ls *.php): do echo Checking $i J=$(which check) Bash $j $i done 14.08.2012 Lars Kumbier 11

GIT 14.08.2012 Lars Kumbier 12

GIT Kann alle Workflows abbilden Weite Verbreitung (this just in: Microsoft baut GIT im Team Foundation Server ein) Verfügbar auf allen großen Plattformen Ursprünglich von Linus Torvalds für das Development des Linux Kernels entwickelt Hohe Sicherheit Erprobte Herangehensweise 14.08.2012 Lars Kumbier 13

GIT QuickStart (1) GIT installieren (2) Repository im aktuellen Verzeichnis anlegen: git init (3) Dateien zur Verwaltung hinzufügen: git add filea, fileb, dirx/* (4) Hinzugefügte Dateien einpflegen (committen): git commit -m My commit Message (5) work done here 14.08.2012 Lars Kumbier 14

GIT QuickStart (1) GIT installieren (2) Repository im aktuellen Verzeichnis anlegen: git init (3) Dateien zur Verwaltung hinzufügen: git add filea, fileb, dirx/* (4) Hinzugefügte Dateien einpflegen (committen): git commit -a -m My commit Message (5) work done here 14.08.2012 Lars Kumbier 15

GIT QuickStart Quelle: http://git-scm.com/book/en/git-basics-recording-changes-to-the-repository 14.08.2012 Lars Kumbier 16

Generelle Nutzung Hilfe git --help git <befehl> --help Status der aktuellen Bearbeitung git status Log anschauen git log Commits sind SHA1-hashsums können zusätzlich per GPG signiert werden Kurzangabe möglich (TAB-Autocomplete auch) 14.08.2012 Lars Kumbier 17

Branching Branches sind leichtgewichtige Kopien des aktuellen Bearbeitungsstandes Anwendungsgebiete Experimente Getrennte Entwicklung von einzelnen Modulen Trennung unterschiedlicher Versionen (z.b. Stable vs. Development-Branch) Automatischer Standardbranch: master (wird beim ersten commit angelegt) 14.08.2012 Lars Kumbier 18

Branching Branches Anzeigen git branch Neuen Branch erstellen git branch featurex Zwischen Branches wechseln git checkout featurex work done here committing Branches zusammenführen git checkout master git merge featurex Branch löschen git branch -d featurex 14.08.2012 Lars Kumbier 19

Tagging Bezeichnen eines Commits mit einem Namen Beispielsweise für Versionierung Die meisten Befehle funktionieren auch mit Tags anstatt Commit-Hashtags Tag zuweisen git tag Version_1 14.08.2012 Lars Kumbier 20

Zusammenarbeit Vorstellungsrunde git config global user.name Raum Zeit git config --global user.email rzl@example.com Ein Repository klonen git clone git://... arbeiten committen Änderungen zurück ins Repo pushen git pull git push origin master Einen Patch erstellen git format-patch master --stdout > sendme.patch Einen Patch versenden git send-email --to John Doe <j@example.com> *.patch 14.08.2012 Lars Kumbier 21

Konfliktlösung Was geschieht, wenn sich Änderungen widersprechen (z.b. Änderungen in derselben Funktion)? GIT verhindert ein commit und gibt eine Konfliktnachricht beim git pull aus. GIT kann einen Merge-Konflikt automatisch lösen Sonst: Konflikt manuell lösen und committen git checkout --ours -- conflictfile git commit git push origin master 14.08.2012 Lars Kumbier 22

Hilfreiche Tools GitK Graphische Anzeige von Logs eines Repos TortoiseGIT Windows-Software für den Explorer Meld Sehr gutes Quellcode-Vergleichstool TIG Text-Mode Interface for Git bunt und in Farbe GIT FTP Nettes Modul zum Veröffentlichen von Working Trees (z.b. für Design oder Homepages) 14.08.2012 Lars Kumbier 23

Mehr GIT? Scott Chacon: Pro GIT http://book.git-scm.com/ Raumzeitlabor@GitHub https://github.com/raumzeitlabor GIT CheatSheet http://jan-krueger.net/development/git-cheat-sheetextended-edition Ask-A-Raumzeitlaborant Workshop wurde bereits angefragt Termin wird nach Rücksprache mit meiner höheren und der tieferen Macht bekannt gegeben 14.08.2012 Lars Kumbier 24

Hackernachwuchs! 14.08.2012 Lars Kumbier 25

$ git bisect good $ git bisect bad $ git blame (Annotations and Blames welcome) 14.08.2012 Lars Kumbier 26

Disclaimer: Nein, ich weiß nicht, ob es GIT, git, Git oder gi+ heißt. 14.08.2012 Lars Kumbier 27