Git-Workflows im Alltag



Ähnliche Dokumente
Konfigurationsdateien mit Git verwalten

Praktikum Ingenieurinformatik (PI)

Git II. Dezentrale Versionsverwaltung im Team

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

Moodle aktuell halten mit Git

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

git Änderungen verwalten mit git

Programmieren 2 06 Git-Teamwork und Egit

Apache Subversion (SVN)

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

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

Von SVN zu Git. Daniel Willmann cbna

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

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

Wie benutzt man TortoiseSVN

Software Engineering in der Praxis

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

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

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

Versionierung und Bugtracking mit Git(Hub)

Linux Cafe Referent: Bernd Strößenreuther

Leichte-Sprache-Bilder

Git in großen Projekten

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Deployment Deployment Seite 1 / 25

Wie richten Sie Ihr Web Paket bei Netpage24 ein

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

DOKUMENTATION VOGELZUCHT 2015 PLUS

Einführung in Subversion

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

Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support)

Git - Fast Version Control System

1 Was ist das Mediencenter?

Kleines Handbuch zur Fotogalerie der Pixel AG

Professionelle Seminare im Bereich MS-Office

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

MailUtilities: Remote Deployment - Einführung

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Versionskontrollsysteme

teischl.com Software Design & Services e.u. office@teischl.com

Kurzeinführung Excel2App. Version 1.0.0

Anleitung: Sammel-Rechnungen für Lizenzen bei Swiss Basketball

Upload auf den Server. MegaZine3 MZ3-Tool3. Training: Server Upload Video 1-4

Dokumentation Typo3. tt - news - Nachrichtenmodul

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

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Modul Bildergalerie Informationen zum Bearbeiten des CMS-Systems für den SV Oberteisendorf

Kurzanleitung zu. von Daniel Jettka

1 Zugang zum GIT Repository

KURZANLEITUNG CLOUD OBJECT STORAGE

AutoTexte und AutoKorrektur unter Outlook verwenden

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6

DER WEG ZUR VISITENKARTE IHRES VEREINS AUF

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

Regeln für das Qualitäts-Siegel

Versionsverwaltung mit SVN

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Eine Kurzanleitung in 10 Schritten

Outlook Vorlagen/Templates

Patch Management mit

ECO-Manager - Funktionsbeschreibung

Erfolgreicher Ums9eg auf Git

ANLEITUNG PREMIUM-PROFIL

Grafstat Checkliste Internetbefragung

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

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

3. auf Symbol klicken erstellt von Erika Völkel

Die Dateiablage Der Weg zur Dateiablage

Installation, Konfiguration und Nutzung des WLAN auf PDA FujitsuSiemens Pocket Loox 720

Lehrer: Kurs wiederherstellen

Der Kalender im ipad

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Einführung in LINUX Der Editor vi

SharePoint Workspace 2010 Installieren & Konfigurieren

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

bitte auf den Button Baudaten-Fenster öffnen klicken. (oder über das Menü -> STAMMDATEN -> BAUDATEN anklicken)

e LEARNING Kurz-Anleitung zum Erstellen eines Wikis 1. Wiki erstellen

Speichern. Speichern unter

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Was ich als Bürgermeister für Lübbecke tun möchte

Bilder im Drachenforum per Klicklösung veröffentlichen

SolBenefit. Photovoltaik- Anlagen- Betrachtung und -Auswertung

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

Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet.

GSM: Airgap Update. Inhalt. Einleitung

Vertrieb durch: h+f Informatik und Elektrotechnik Washingtonstrasse 32 CH-9400 Rorschach Tel: +41 (0) Mobile: +41 (0)

egovernment für das Open Source CMS Contao

GITS Steckbriefe Tutorial

SJ OFFICE - Update 3.0

OutLook 2003 Konfiguration

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Sourcecodeverwaltung

Support-Ticket-System. - Anleitung zur Benutzung -

OUTLOOK-DATEN SICHERN

Transkript:

Git-Workflows im Alltag Valentin Haenel Freelance Consultant and Software Developer http://haenel.co @esc 2015-03-21 @ CLT Version: v0.3.0 https://github.com/esc/clt-2015-git-workflows This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 License. 1 / 41

Intro Git-Workflows? Folge von Kommandos Nutzung von Branches und Tags 2 / 41

Übersicht 1 Intro 2 Push n Pull 3 Github-Flow 4 Rebase n Force-Merge 5 Gitflow 6 Andere Gitworkflows Gerrit Workflow 7 Outro 3 / 41

Übersicht 1 Intro 2 Push n Pull 3 Github-Flow 4 Rebase n Force-Merge 5 Gitflow 6 Andere Gitworkflows Gerrit Workflow 7 Outro 4 / 41

Push n Pull Workflow 1 Lokale Änderungen vim datei git add datei git commit -m "msg" 2 Änderungen veröffentlichen git push Wenn push fehlschlägt: git pull, dann git push 5 / 41

Push n Pull Resultat Vorteile Leicht für Anfänger Nur weniger Kommandos Nachteile Es entstehen Merge-Commits»Aber wir arbeiten doch alle auf master?!«rebase ist eine Option (für Anfänger?) 6 / 41

Push n Pull Resultat mit --rebase Vorteile Keine Merge-Commits Nachteile»Sinnloses«Linearisieren Feature-Commits in zufälliger Reihenfolge Konflikte beim Rebase? 7 / 41

Interlude: Darstellung von Git-Graphen Bei mir: Zeit läuft von unten nach oben Wie bei Gitk, Eclipse, SourceTree etc... Aber: Mehrere Commits auf einer Zeile (vereinfacht die Darstellung) Bei Gitk, Eclipse, SourceTree ist das nicht so.. 8 / 41

Interlude: Darstellung von Git-Graphen 9 / 41

Übersicht 1 Intro 2 Push n Pull 3 Github-Flow 4 Rebase n Force-Merge 5 Gitflow 6 Andere Gitworkflows Gerrit Workflow 7 Outro 10 / 41

Github-Flow Geeignet für Github Webinterface oder github Kommandozeilenerweiterung Nutzt Feature-Branches 11 / 41

Github-Flow Entwickler: 1 Forkt ein Repository 2 Klont seinen Fork und macht Commits in einem Feature-Branch 3 Pusht den Feature-Branch in seinen Fork 4 Eröffnet einen Pull-Request Autor: 5 Fetcht den Feature-Branch und mergt ihn 6 Pusht ins Original 7 oder: Mergt den Pull-Request über das Webinterface 12 / 41

Github-Flow Resultat Vorteile Feature-Branches Nachteile Feature-Branches basieren vor dem Merge evtl. nicht auf dem aktuellen Master»Durcheinander«13 / 41

Github-Flow Anmerkungen Beim Merge von Pull-Requests wird der Merge-Commit automatisch forciert Weitere Schritte vom Entwickler nötig Feature-Branches löschen Synchronisation vom master im Fork mit master aus Original 14 / 41

Übersicht 1 Intro 2 Push n Pull 3 Github-Flow 4 Rebase n Force-Merge 5 Gitflow 6 Andere Gitworkflows Gerrit Workflow 7 Outro 15 / 41

Rebase n Force-Merge Workflow 16 / 41

Beschreibung der Schritte 1 Repository clonen: git clone <url> 2 Feature-Branch anlegen git checkout -b feature 3 Arbeiten: vim datei git add datei git commit -m "<msg>" 4 Getane Arbeit hochladen # beim ersten Mal git push origin -u feature git push 5 Lokalen master aktualisieren: git checkout master git pull 6 Rebase feature auf master: git checkout feature git rebase master 7 Forcierter Merge von feature: git checkout master git merge --no-ff feature 8 master Hochladen: git push 9 Fehlschlag: Merge rückgängig: git reset --hard HEADˆ 10 Erfolg: feature löschen, lokal und remote: git branch -d feature git push origin --delete feature 17 / 41

Rebase n Force-Merge Force-Merge Fast-Forward vermeiden Merge-Commit erzwingen Nur so kann git revert einen Merge rückgängig machen Merge-Commit als»sinvolle«markierung 18 / 41

Rebase n Force-Merge Rebase»Auf eine neue Basis stellen«integration von Änderungen aus master Vorbereitung für den Merge 19 / 41

Rebase n Force-Merge Resultat Vorteile Saubere history Feature-Branches Merges sinnvoll Nachteile Verständnis von Git gebraucht Mehrere Kommandos nötig 20 / 41

Rebase n Force-Merge Anmerkungen Kann auch im Github-Flow verwendet werden Feature-Branches vor dem Merge des Pull-Request per Force-Push aktualisieren Beim Merge von Pull-Requests wird der Merge-Commit automatisch forciert 21 / 41

Übersicht 1 Intro 2 Push n Pull 3 Github-Flow 4 Rebase n Force-Merge 5 Gitflow 6 Andere Gitworkflows Gerrit Workflow 7 Outro 22 / 41

Gitflow Großflächiges Branch-Modell Branches master Stabil/Produktion develop Instabil/Vorbereitung feature Feature-Entwicklung release Letzte Releasearbeiten hotfix Hotfixes http://nvie.com/posts/a-successful-git-branching-model/ 23 / 41

Gitflow 24 / 41

Gitflow pdftk gitflow.pdf cat 1E output gitflow-rotated.pdf 25 / 41

Gitflow master und develop Zwei langlebige Branches master Stabil/Produktion develop Instabil/Vorbereitung 26 / 41

Gitflow Feature-Branches Neue Features werden hier entwickelt Zweigen ab von develop Werded gemert nach develop Wenn fertig löschen nicht vergessen! 27 / 41

Gitflow release Release-Vorbereitung Letzte Typo-Fixes Changelog, Version-Bump etc... Wichtige Änderungen develop Wenn fertig master und develop Tags werden auf master gesetzt 28 / 41

Gitflow hotfix Security-kritische Fixes Produktion Mergt auch develop 29 / 41

Gitflow Anmerkungen Alle Merges sollten mit --no-ff passieren Triviale Commits auf develop? Rebase n Force-Merge auch hier möglich Namensräume für Feature-Branches 30 / 41

Gitflow Erweiterung Nr. 1: hotfix über master Unterschiedliche»Erreichbarkeit«git describe Alt/Grau v0.1-5-g<sha1> Neu/Schwarz v0.2-2-g<sha1> Gilt auch für release 31 / 41

Gitflow Erweiterung Nr. 2: Release-Candidate-Tags auf release Release-Candidate-Tags auf release Suffix: -rcn 32 / 41

Gitflow Erweiterung Nr. 3: Rebase gegen hotfix Hotfixes per rebase in Feature-Branches integrieren Hier mit der alternativen Merge-Route (Evtl. wurde der Hotfix per Cherry-Pick übertragen) 33 / 41

Übersicht 1 Intro 2 Push n Pull 3 Github-Flow 4 Rebase n Force-Merge 5 Gitflow 6 Andere Gitworkflows Gerrit Workflow 7 Outro 34 / 41

Manpage: Gitworkflows man gitworkflows Älteres Model Info über git.git Sammlung von Best-Practices Vorschläge und Konzepte, e.g.»throw-away-integration«keine Bilder :( 35 / 41

Übersicht 1 Intro 2 Push n Pull 3 Github-Flow 4 Rebase n Force-Merge 5 Gitflow 6 Andere Gitworkflows Gerrit Workflow 7 Outro 36 / 41

Gerrit Workflow Hosting, Webinterface für Code-Review Konzept: Pending Changes Eigener Workflow mit Feature-Branches und Automerging Genutzt von Wikimedia, OpenStack und Android 37 / 41

Gerrit Workflow 38 / 41

Übersicht 1 Intro 2 Push n Pull 3 Github-Flow 4 Rebase n Force-Merge 5 Gitflow 6 Andere Gitworkflows Gerrit Workflow 7 Outro 39 / 41

Fazit In der Praxis macht sowieso jeder was er will nicht ärgern ;-) Nutzt Feature-Branches!!! Projektgröße? Für diese Folien reichte ein einzelner master (KISS) Eigene Arbeitsweise Schritt für Schritt erweitern 40 / 41

Fragen? Quellen: https://github.com/esc/clt-2015-git-workflows Danke: Julius Plenz für Anregungen, Ideen und Patches Jens Kubieziel für das erste Patch Alles mit Open-Source gemacht! Wiki2beamer L A TEXbeamer Dia ccbeamer make, vim, zsh, git usw... Git-Schulungen in München (z.b. 04. 05.05.2015) Unser Git-Buch: http://gitbu.ch 41 / 41