Git II. Dezentrale Versionsverwaltung im Team



Ähnliche Dokumente
Praktikum Ingenieurinformatik (PI)

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

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

Moodle aktuell halten mit Git

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

Apache Subversion (SVN)

Git in großen Projekten

Konfigurationsdateien mit Git verwalten

Git-Workflows im Alltag

Einführung in Subversion

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Erfolgreicher Ums9eg auf Git

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

Seminar. Bachelor Wirtschaftsinformatik

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

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

Von SVN zu Git. Daniel Willmann cbna

Programmieren 2 06 Git-Teamwork und Egit

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

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

git Änderungen verwalten mit git

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

Versionierung und Bugtracking mit Git(Hub)

Deployment Deployment Seite 1 / 25

Versionsverwaltung mit SVN

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

eclipse - EGit HowTo

Tevalo Handbuch v 1.1 vom

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

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

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Updatehinweise für die Version forma 5.5.5

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Beheben von verlorenen Verknüpfungen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Man liest sich: POP3/IMAP

SJ OFFICE - Update 3.0

Netzwerkeinstellungen unter Mac OS X

HSR git und subversion HowTo

CVS-Einführung. Sebastian Mancke,

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

Branching und Merging mit Visual Studio Team System

Gezielt über Folien hinweg springen

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Software Engineering in der Praxis

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Arbeit mit Workflows in Teamcenter

OpenMAP WEBDrive Konfiguration. Oxinia GmbH , Version 1

OP-LOG

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

Standard Daten-Backup-Script

teamsync Kurzanleitung

Dokumentenverwaltung im Internet

Import und Export von Übergängern

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Kleines Handbuch zur Fotogalerie der Pixel AG

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

Step by Step Webserver unter Windows Server von Christian Bartl

Benutzerverwaltung Business- & Company-Paket

MailUtilities: Remote Deployment - Einführung

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

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Abhängigkeiten und Git

Sichern der persönlichen Daten auf einem Windows Computer

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

IAWWeb PDFManager. - Kurzanleitung -

ERSTELLEN VON INCENTIVES IM ZANOX NETZWERK

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

IntelliRestore Seedload und Notfallwiederherstellung

How-To-Do. Fernwartung einer VIPA Steuerung via Ethernet

SharePoint Workspace 2010 Installieren & Konfigurieren

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Anleitung. Update/Aktualisierung EBV Einzelplatz Homepage. und Mängelkatalog

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

SANDBOXIE konfigurieren

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

Wie benutzt man TortoiseSVN

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation Erstkonfiguration... 4

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Dokumentation von Ük Modul 302

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Win 7 optimieren. Unser Thema heute: Meine erstellten Daten in eine andere Partition verschieben.

COSIDNS 2 ISPconfig3. Version 0.1 ( )

ARAkoll 2013 Dokumentation. Datum:

ANLEITUNG VSGIS.CH. Erweiterter geschützter Bereich

Änderungen in Version 11. Kundenmaske 1. Weinmaske 2

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Formular»Fragenkatalog BIM-Server«

Anmeldeverfahren. Inhalt. 1. Einleitung und Hinweise

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

Arbeiten mit dem neuen WU Fileshare unter Windows 7

Transkript:

Git II Dezentrale Versionsverwaltung im Team

Themenbereiche Arbeit mit Remote Repositories Austausch zwischen Repositories Änderungen rückgängig machen Zusammenarbeit über Workflows

Git hat mehr als nur den Workspace.. Arbeit mit Remote-Repositories

Repositories klonen Projektserver hat zentrales Repository Jeder Entwickler braucht mindestens einen eigenen Klon Klonen dient auch für unabhängige Entwicklungen mit anderer Richtung (Fork) Als Backup für das Hauptrepository Wichtige Befehle: git clone <pfad> Hinweise

Repositories klonen

git remote add <name> <pfad> Nützlich, wenn man häufig auf einen Klon zugreift Weist einem geklonten Repository einen Kurznamen zu Bei Befehlen muss dann nicht mehr die Repo-URL benutzt werden Kann gelöscht werden durch: git remote rm <kurzname> Original-Repository trägt den Namen origin Auflistung der Verknüpfung über: git remote --verbose (git remote v)

git remote add <name> <pfad>

Tracking branches = Lokaler Branch der einen remote branch verfolgt verbinden lokale Arbeit mit der Arbeit in einem entfernten Repository wissen automatisch, von welchem entfernten Branch Änderungen heruntergeladen werden müssen, wenn git pull oder git fetch verwendet werden. git status erkennt, wieviele Commits die aktuelle Arbeit der entfernten Version des Branches voraus ist. git branch --track <NeuerBranchname> <remote>

Ideen zusammenführen Austausch zwischen Repositories

Austausch zwischen Repositories git pull git fetch git merge git push

git fetch Importiert Commits aus einem Remote-Repository in das eigene lokale Repo Die entstehenden Commits werden als Remote-Branches abgespeichert hat absolut keinen Effekt auf lokale Entwicklungsarbeit Sicherer Weg, Commits zu betrachten Ermöglicht, die Änderungen vor der Integration in den eigenen Workspace zu überprüfen Dient dazu, die Arbeit der anderen Entwckler zu begutachten

git fetch git fetch <remote> holt alle branches aus dem remote (inkl. aller Commits und Dateien) git fetch <remote> <branch> holt alle Commits und Dateien eines bestimmten branch

Austausch zwischen Repositories git pull git fetch git merge git push

git merge Fast-Forward- Merge Drei-Wege- Merge

git merge Fast-Forward- Merge Drei-Wege- Merge

Fast-Forward-Merge Benötigt linearen Pfand von aktuellem Branch zu Zielbranch Bewegt einfach den Zeiger von der masterbranch zur featurebranch Für kleinere Änderungen z.b. Bugfixes

git merge Fast-Forward- Merge Drei-Wege- Merge

Drei-Wege-Merge Bei auseinander gegangenen Branches Erstellt zur Zusammenführung einen neuen Commit Gut geeignet für längerfristige Features

Drei-Wege-Merge 1. Entwickler beginnt ein neues Feature in einem neuen Branch 2. Bearbeitung von Dateien in dem Branch 3. Auch im master-branch wird entwickelt 4. Schließlich wird das Feature in die master-branch übernommen und der Feature-branch gelöscht

Achtung, Konfliktpotential

Merging-Konflikte

Derweil auf dem Master-Branch

Merging: Konfliktlösung 1. Zweifach bearbeitete Stelle manuell ändern 2. Dokument erneut hinzufügen (git add) 3. Commit abgeben Konflikt gelöst

Austausch zwischen Repositories git pull git fetch git merge git push

git pull Abkürzung für git fetch - git merge Abfolge Einfacher Weg sein lokales Repository mit dem Upstream Repository zu synchronisieren git fetch <remote> git merge origin/<current-branch> git pull <remote>

Austausch zwischen Repositories git pull git fetch git merge git push

git push Gegenstück zu git pull überträgt Commits: lokal remote hat Potenzial, Änderungen zu überschreiben: VORSICHT! möglichst nur in Bare-Repositories pushen gebräuchlichste Verwendung: Veröffentlichung der eigenen lokalen Änderungen in einem zentralen Repository

git push git push <remote> <branch> schiebt den entsprechenden Branch und alle notwendigen Commits und Objekte auf das remote, wo eine lokale branch erstellt wird git push <remote> --force funktioniert selbst dann, wenn daraus ein non-forward-merging folgt (nur benutzen, wenn man absolut sicher ist, was man tut) git push <remote> --all schiebt alle branches auf das remote

Änderungen rückgängig machen Checkout, revert, reset,

Revert vs. Reset Macht gespeicherte (commited) Änderungen rückgängig Löscht Commit nicht, sondern erstellt einen neuen, bei dem die Änderungen rückgängig gemacht wurden Revidiert einen einzigen Commit (setzt nicht auf Stand zurück) bewahrt git davor, einen Teil der Historie zu verlieren git revert <commit> Macht nicht gespeicherte (uncommited) Änderungen rückgängig permantente Revision (keine Möglichkeit, danach auf das Original noch zuzugreifen) sollte immer nur bei lokalen Änderungen angewandt werden git reset git reset <file> git reset --hard (<commit>)

git revert

git reset

Vergleich git revert gut geeignet, wenn ein Fehler nur durch einen einzigen Commit entstanden ist sichere Variante, da es die Historie nicht ändert kann gezielt einen individuellen Commit auswählen für public history gedacht git reset arbeitet vom aktuellen Commit an rückwärts Rückgängigmachen eines früheren Commits beinhaltet das Verlorengehen aller darauffolgenden Commits ohne --hard ein guter Weg das Repository zu säubern --hard ist hilfreich wenn ein Experiment total schief gelaufen ist

Reset Revert Checkout Kommando Ebene Gewöhnliche Nutzungsweise git reset Commit Datei Commits in privaten branches verwerfen oder uncommitted changes wegwerfen Eine Datei aus dem Staging-Bereich wiederherausholen git revert Commit Datei / Commits in einem öffentlichen Zweig rückgängig machen git checkout Commit Datei Zwischen branches wechseln oder alte Zustände betrachten Änderungen im Arbeitsverzeichnis verwerfen

Bitbucket Zusammenarbeit über ein zentrales Repository

Zusammenarbeit über Bitbucket Benutzerfreundliche Web- Oberfläche zur Diskussion vorgeschlagener Änderungen vor der Integration in das offizielle Projekt Unser Repository für die Übung: https://bitbucket.org/pp_ruby_20 15_ss/git2-uebungsrepository

Teamarbeit: Ablauf 1. Erstellung eines Features durch einen Entwickler in einem Branch in seinem lokalen Repository

Pull-Request

Teamarbeit: Ablauf 1. Erstellung eines Features durch einen Entwickler in einem Branch in seinem lokalen Repository 2. Veröffentlichung der Branch auf einem öffentlichen Repository mittels PUSH-Befehl

Pull-Request

Teamarbeit: Ablauf 1. Erstellung eines Features durch einen Entwickler in einem Branch in seinem lokalen Repository 2. Veröffentlichung der Branch auf in einem öffentlichen Repository mittels PUSH-Befehl 3. Pull-Request durch den Entwickler via Bitbucket 4. Die anderen Teammitglieder reviewen den Code, diskutieren und verändern ihn

Pull-Request

Teamarbeit: Ablauf 1. Erstellung eines Features durch einen Entwickler in einem Branch in seinem lokalen Repository 2. Veröffentlichung der Branch auf in einem öffentlichen Repository mittels PUSH-Befehl 3. Pull-Request durch den Entwickler via Bitbucket 4. Die anderen Teammitglieder überprüfen den Code, diskutieren und verändern ihn 5. Ein Projektverwalter führt das Feature mit dem Inhalt des offiziellen Repository zusammen mittels MERGE-Befehl und schließt den Pull-Request

Pull-Request

Workflows

Workflows

Workflows

Quellen Preißel, R.,Stachmann, B., Git- Dezentrale Versionsverwaltung im Team (2012) https://www.atlassian.com/git/tutorials http://www.sitepoint.com/getting-started-git-team-environment/ http://ndpsoftware.com/git-cheatsheet.html http://de.gitready.com/beginner/2009/03/09/remote-trackingbranches.html