Verteilte Versionsverwaltung mit Git



Ähnliche Dokumente
Praktikum Ingenieurinformatik (PI)

Von SVN zu Git. Daniel Willmann cbna

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

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

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

Git-Workflows im Alltag

Versionierung und Bugtracking mit Git(Hub)

Git in großen Projekten

Moodle aktuell halten mit Git

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

git Änderungen verwalten mit git

Erfolgreicher Ums9eg auf Git

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

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

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

Git II. Dezentrale Versionsverwaltung im Team

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

Programmieren 2 06 Git-Teamwork und Egit

Linux Cafe Referent: Bernd Strößenreuther

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

Versionskontrollsysteme

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

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

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

Konfigurationsdateien mit Git verwalten

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

Apache Subversion (SVN)

Versionskontrollsysteme. Uwe Berger & Markus Dahms <bralug@bralug.de>

Versionskontrolle. Verteilte Versionskontrollsysteme. Richard Madsack. 25. November Versionskontrolle. Richard Madsack.

Deployment Deployment Seite 1 / 25

Versionsverwaltung mit git. Christoph Knabe FB VI

Versionsverwaltung mit SVN

Medieninformatik Praktikum. Jens Rademacher

Git - Fast Version Control System

Gerrit und Jenkins ein Traumpaar für Pre-Tested Commit

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Continuous Integration (CI) Workshop

Abhängigkeiten und Git

Software Engineering in der Praxis

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

Julius Plenz. Valentin Haenel. Git. Verteilte Versionsverwaltung für Code Dokumente. 2. Auflage. Open Source Press

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

Versionskontrolle mit Subversion

GitLab als alternative Entwicklungsplattform zu Github.com

Having fun with GIT. Chris Wewerka. Software Development Specialist

Dezentrale Versionsverwaltung

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

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Renée Bäcker. Perl $foo Magazin

Kurzanleitung zu. von Daniel Jettka

CVS-Einführung. Sebastian Mancke,

Einführung in Subversion. Tutorium SWP

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

Continuous Delivery in der Realität eines Großunternehmens

Branching und Merging mit Visual Studio Team System

EGit: Die effiziente Git- Integration in Eclipse

Consultant & Geschäftsführer, enpit consulting OHG ugb@enpit.de

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

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

Seminar. Bachelor Wirtschaftsinformatik

Revisionskontrollsystem GIT

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

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

Git Workshop. LiWoLi Florian Preinstorfer. Wolfgang Silbermayr

Einführung in Subversion

Einfu hrung in Subversion mit TortoiseSVN

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

eclipse - EGit HowTo

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

Versionsverwaltung mit Mercurial für Einsteiger

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

Linux im Studium. Serbest Hammade / Resh, Christian Sturm. Do, 15. November 2012

Gitting started. Christian Neukirchen. 14dec2011

Universität Leipzig - Softwaretechnik Praktikum 2014/2015 Installationsanleitung zum Projekt: Ein kartenbasiertes Multiplayer -Spiel

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner

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

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

Vorwort. Warum Git? vii

Git-Grundlagen für Entwickler. Thomas Claudius

Redmine, das Projekt Management Werkzeug

Wie benutzt man TortoiseSVN

peer-to-peer Dateisystem Synchronisation

Spiel, Spaß und Spannung mit Git

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

Versionsverwaltung für r Visual Studio.NET mit Subversion

Sourcecodeverwaltung

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Transkript:

25012012 Vorlesung Softwareentwicklung in der industriellen Praxis Technische Universität Dresden Fakultät Informatik

Einleitung

Einleitung Über den Vortragenden

Über den Vortragenden Communardo Software GmbH Anbieter von Softwarelösungen zur Optimierung der Kommunikation und Zusammenarbeit in Teams, Projekten und Unternehmen Software- und Beratungshaus für gesamten Realisierungszyklus

Über den Vortragenden Communardo Software GmbH

Über den Vortragenden Softwarearchitekt, IT-Consultant Debian Developer CAcertorg Infrastrukturadministrator Spezialgebiete: freie Software, Kryptografie,

Über den Vortragenden Softwarearchitekt, IT-Consultant Debian Developer CAcertorg Infrastrukturadministrator Spezialgebiete: freie Software, Kryptografie, verheiratet, 3 Kinder, eine Katze

Zentrale vs verteilte VCS Git speziell Erste Schritte mit Git

Zentrale vs verteilte VCS Zentral Verteilt ein zentrales Repository (evtl repliziert)

Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) Verteilt beliebig viele (gleichberechtigte) Klone

Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) Verteilt beliebig viele (gleichberechtigte) Klone lokale Working Copy (meist) ohne Historie

Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) lokale Working Copy (meist) ohne Historie Verteilt beliebig viele (gleichberechtigte) Klone (komplette) lokale Historie

Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) lokale Working Copy (meist) ohne Historie Verteilt beliebig viele (gleichberechtigte) Klone (komplette) lokale Historie viele Remote-Operationen

Zentrale vs verteilte VCS Zentral ein zentrales Repository (evtl repliziert) lokale Working Copy (meist) ohne Historie viele Remote-Operationen Verteilt beliebig viele (gleichberechtigte) Klone (komplette) lokale Historie alles außer Repositoryabgleich ist lokal

Zentrale vs verteilte VCS Zentral Verteilt Austausch nur über zentrales Repository

Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Verteilt Austausch zwischen beliebigen Klonen möglich

Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Verteilt Austausch zwischen beliebigen Klonen möglich Netzwerk erforderlich

Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Netzwerk erforderlich Verteilt Austausch zwischen beliebigen Klonen möglich Netzwerk nur für Repositoryabgleich nötig

Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Netzwerk erforderlich Verteilt Austausch zwischen beliebigen Klonen möglich Netzwerk nur für Repositoryabgleich nötig (meist) starre vom Tool vorgegebene

Zentrale vs verteilte VCS Zentral Austausch nur über zentrales Repository Netzwerk erforderlich (meist) starre vom Tool vorgegebene Verteilt Austausch zwischen beliebigen Klonen möglich Netzwerk nur für Repositoryabgleich nötig beliebige (später mehr dazu)

Git speziell Warum Git und nicht? leichtgewichtige lokale Branches

Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell

Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index)

Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index) Speicherplatz- und Bandbreitensparsamkeit

Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index) Speicherplatz- und Bandbreitensparsamkeit Rebasing um lokale Änderungen zusammenzufassen

Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index) Speicherplatz- und Bandbreitensparsamkeit Rebasing um lokale Änderungen zusammenzufassen sehr umfangreiche Dokumentation, Bücher und Community [1]

Git speziell Warum Git und nicht? leichtgewichtige lokale Branches sehr schnell die Staging-Area (Index) Speicherplatz- und Bandbreitensparsamkeit Rebasing um lokale Änderungen zusammenzufassen sehr umfangreiche Dokumentation, Bücher und Community [1] http://dewhygitisbetterthanxcom/

Git speziell Unterschied zu den meisten anderen VCS Die meisten VCS speichern Änderungen zu einer Basisversion Bildquelle: http://progitorg [2]

Git speziell Unterschied zu den meisten anderen VCS Die meisten VCS speichern Änderungen zu einer Basisversion Git speichert Datenschnappschüsse und keine Deltas Bildquelle: http://progitorg [2]

Git speziell Objekte in Git Blob Dateiinhalte

Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees

Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees

Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees Tag Name für einen bestimmten Commit

Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees Tag Name für einen bestimmten Commit Branch Entwicklungszweig mit eigenem HEAD

Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees Tag Name für einen bestimmten Commit Branch Entwicklungszweig mit eigenem HEAD Blobs, Trees und Commits können eindeutig und fälschungssicher über SHA-1-Hash identifiziert werden

Git speziell Objekte in Git Blob Dateiinhalte Tree Zeiger auf Dateiinhalte und Trees Commit Zeiger auf Version eines Trees Tag Name für einen bestimmten Commit Branch Entwicklungszweig mit eigenem HEAD Blobs, Trees und Commits können eindeutig und fälschungssicher über SHA-1-Hash identifiziert werden Tags und Branches sind Namen für Commit-Hashes

Git speziell Drei Bäume in Git HEAD letzter Commit, Parent des nächsten Commits

Git speziell Drei Bäume in Git HEAD letzter Commit, Parent des nächsten Commits Index Vorbereitung für nächsten Commit

Git speziell Drei Bäume in Git HEAD letzter Commit, Parent des nächsten Commits Index Vorbereitung für nächsten Commit Working Copy Arbeitsverzeichnis

Erste Schritte mit Git Git installieren Linux Debian/Ubuntu sudo a p t i t u d e i n s t a l l g i t a l l

Erste Schritte mit Git Git installieren Linux Debian/Ubuntu sudo a p t i t u d e i n s t a l l g i t a l l CentOS/RHEL (mit EPEL [3]) oder Fedora yum i n s t a l l g i t g i t k

Erste Schritte mit Git Git installieren Windows msysgit [4] oder git-paket für Cygwin [5] TortoiseGit [6] (benötigt msysgit)

Erste Schritte mit Git

Erste Schritte mit Git

Erste Schritte mit Git Bei Git bekanntmachen g i t c o n f i g g l o b a l u s e r name Jan D i t t b e r n e r g i t c o n f i g g l o b a l u s e r e m a i l ' j a n dittberner@communardo de

Erste Schritte mit Git Bei Git bekanntmachen g i t c o n f i g g l o b a l u s e r name Jan D i t t b e r n e r g i t c o n f i g g l o b a l u s e r e m a i l ' j a n dittberner@communardo de Aktuelles Verzeichnis zu Git-Repository machen g i t i n i t

Erste Schritte mit Git Datei in Index aufnehmen g i t add n e w f i l e t x t

Erste Schritte mit Git Datei in Index aufnehmen g i t add n e w f i l e t x t Änderungen (lokal) einchecken g i t commit

Erste Schritte mit Git Branch featurex erzeugen und HEAD auf Branch setzen g i t checkout b f e a t u r e X

Erste Schritte mit Git Branch featurex erzeugen und HEAD auf Branch setzen g i t checkout b f e a t u r e X Branch featurey in Working Copy auschecken g i t checkout f e a t u r e Y

Erste Schritte mit Git Branch featurex erzeugen und HEAD auf Branch setzen g i t checkout b f e a t u r e X Branch featurey in Working Copy auschecken g i t checkout f e a t u r e Y Branch erzeugen ohne Auschecken g i t branch f e a t u r e Z

Erste Schritte mit Git (Remote-)Repository klonen g i t c l o n e g i t o l i t e @ g i t s e r v e r : reponame

Erste Schritte mit Git (Remote-)Repository klonen g i t c l o n e g i t o l i t e @ g i t s e r v e r : reponame g i t c l o n e $HOME/ g i t r e p o s / p r o j e c t g i t

Erste Schritte mit Git (Remote-)Repository klonen g i t c l o n e g i t o l i t e @ g i t s e r v e r : reponame g i t c l o n e $HOME/ g i t r e p o s / p r o j e c t g i t g i t c l o n e g i t : / / g i t h u b com/ jandd / deform g i t Unterstützte Protokolle: ssh, git, http(s), ftp(s), rsync, file

Erste Schritte mit Git Änderungen aus Remote-Repository holen g i t f e t c h

Erste Schritte mit Git Änderungen aus Remote-Repository holen g i t g i t f e t c h inklusive Merge in Working Copy p u l l

Erste Schritte mit Git Änderungen aus Remote-Repository holen g i t g i t f e t c h inklusive Merge in Working Copy p u l l Änderungen in Remote-Repository übertragen g i t push

Erste Schritte mit Git Weiteres Remote-Repository hinzufügen g i t remote add k o l l e g e ' h t t p : / / c o l l e a g u e s m a c h i n e / repo g i t

Erste Schritte mit Git Weiteres Remote-Repository hinzufügen g i t remote add k o l l e g e ' h t t p : / / c o l l e a g u e s m a c h i n e / repo g i t das Standardrepository heißt origin

Erste Schritte mit Git Weiteres Remote-Repository hinzufügen g i t remote add k o l l e g e ' h t t p : / / c o l l e a g u e s m a c h i n e / repo g i t das Standardrepository heißt origin von Remote-Repository aktualisieren git fetch kollege

Erste Schritte mit Git History ansehen g i t l o g

Erste Schritte mit Git History ansehen g i t l o g Status der Working Copy und des Index g i t s t a t u s

Erste Schritte mit Git History ansehen g i t l o g Status der Working Copy und des Index g i t s t a t u s Unterschied zu Index g i t d i f f

Erste Schritte mit Git Änderungen aus Branch in aktuellen Branch mergen g i t merge f e a t u r e X

Erste Schritte mit Git Änderungen aus Branch in aktuellen Branch mergen g i t merge f e a t u r e X Hilfe zu <command> g i t h e l p <command>

Grundlegendes Repositorystrukturen Branch-

Grundlegendes Git schreibt nichts vor

Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7]

Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7] im Internet gibt es eine Reihe von guten Tipps

Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7] im Internet gibt es eine Reihe von guten Tipps Google: git workflows

Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7] im Internet gibt es eine Reihe von guten Tipps Google: git workflows Git bietet an vielen Stellen Möglichkeiten mit Hooks einzugreifen [8]

Grundlegendes Git schreibt nichts vor die Dokumentation liefert ein paar Anregungen [7] im Internet gibt es eine Reihe von guten Tipps Google: git workflows Git bietet an vielen Stellen Möglichkeiten mit Hooks einzugreifen [8] Tools wie Gerrit oder Gitolite helfen bei der Umsetzung von bzw Durchsetzung von Richtlinien

Grundlegendes Git Hooks clientseitig

Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit

Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit E-Mail-Workflow applypatch-msg, pre-applypatch, post-applypatch

Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit E-Mail-Workflow applypatch-msg, pre-applypatch, post-applypatch sonstige pre-rebase, post-checkout, post-merge

Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit E-Mail-Workflow applypatch-msg, pre-applypatch, post-applypatch sonstige pre-rebase, post-checkout, post-merge serverseitig

Grundlegendes Git Hooks clientseitig Commit-Workflow pre-commit, prepare-commit-msg, commit-msg, post-commit E-Mail-Workflow applypatch-msg, pre-applypatch, post-applypatch sonstige pre-rebase, post-checkout, post-merge serverseitig Eingehende Push-Requests pre-receive, post-receive, update

Repositorystrukturen SVN-artig mit zentralem Repository

Repositorystrukturen dezentral mit Referenzrepository

Repositorystrukturen Integration-Manager

Repositorystrukturen Dictator and Lieutenants a a zb für Entwicklung des Linux-Kernels verwendet

Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master

Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches

Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches Rebase der Featurebranches auf master

Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches Rebase der Featurebranches auf master interaktives Rebase vor dem Merge

Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches Rebase der Featurebranches auf master interaktives Rebase vor dem Merge Merge des Featurebranches in Master

Branch- A Git Workflow for Agile Teams http://reinhcom/blog/2009/03/02/ a-git-workflow-for-agile-teamshtml regelmäßig pull von zentralem Repository in lokalen master Einsatz von lokalen Featurebranches Rebase der Featurebranches auf master interaktives Rebase vor dem Merge Merge des Featurebranches in Master Push in zentrales Repository

Feature for future release Bugfixes from rel branch may be continuously merged back into develop Incorporate bugfix in develop hotfixes Only bugfixes! 10 Start of release branch for Severe bug fixed for production: hotfix 02 release branches master Tag 10 Tag 02 Tag 01 Workflows Author: Vincent Driessen Original blog post: http://nviecom/archives/323 License: Creative Commons develop Branch-Workflows From this point on, next release means the release after 10 Major feature for next release feature branches Einleitung A successful Git Branching Model [10] Time

Branch- A successful Git Branching Model [10] master für Lieferstände

Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände

Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände release-* für Releasevorbereitung

Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände release-* für Releasevorbereitung hotfix-* für Hotfixes

Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände release-* für Releasevorbereitung hotfix-* für Hotfixes Featurebranches

Branch- A successful Git Branching Model [10] master für Lieferstände develop für Entwicklungsstände release-* für Releasevorbereitung hotfix-* für Hotfixes Featurebranches Unterstützung durch git-flow [9] (Debian-Paket: git-flow)

Branch- Einbeziehung von CI-Tools und/oder Code-Reviews http://sourceandroidcom/source/life-of-a-patchhtml

Hosting von Repositories Entwicklungstools Build-, Release- und Projektverwaltung

Hosting von Repositories Dateisystem, Fileshare

Hosting von Repositories Dateisystem, Fileshare eigener Server zb gitolite, ssh-server oder Apache mit WebDAV

Hosting von Repositories Dateisystem, Fileshare eigener Server zb gitolite, ssh-server oder Apache mit WebDAV spezialisierte Git-Hoster wie Gitorious [11] oder GitHub [12]

Hosting von Repositories Dateisystem, Fileshare eigener Server zb gitolite, ssh-server oder Apache mit WebDAV spezialisierte Git-Hoster wie Gitorious [11] oder GitHub [12] Entwicklungsplattformen wie BitBucket [13], SourceForge [14] oder Google Code [15]

Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit

Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit IntelliJ IDEA inklusive

Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit IntelliJ IDEA inklusive Netbeans inklusive ab Netbeans 70

Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit IntelliJ IDEA inklusive Netbeans inklusive ab Netbeans 70 GNU Emacs Basisupport inklusive ab 221, erweiterte Unterstützung mit Zusatzmodulen, Mode für Commit-Messages

Entwicklungstools IDEs und Editoren Eclipse http://wwweclipseorg/egit IntelliJ IDEA inklusive Netbeans inklusive ab Netbeans 70 GNU Emacs Basisupport inklusive ab 221, erweiterte Unterstützung mit Zusatzmodulen, Mode für Commit-Messages VIM diverse Wrapper, Syntax-Highlighting für Commit-Messages

Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit,

Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit, grafische History-Viewer gitk, gitg, gitx,

Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit, grafische History-Viewer gitk, gitg, gitx, Commit-/Merge-Tools git-gui

Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit, grafische History-Viewer gitk, gitg, gitx, Commit-/Merge-Tools git-gui TortoiseGit, SmartGit

Entwicklungstools Repository-Browser diverse Webfrontends gitweb, cgit, grafische History-Viewer gitk, gitg, gitx, Commit-/Merge-Tools git-gui TortoiseGit, SmartGit meld, diffuse, TortoiseMerge,

Build-, Release- und Projektverwaltung Maven SCM-Provider http://mavenapacheorg/scm/githtml <project xmlns= http: //maven apache org /POM/400 > <scm> <connection>scm: git: http: // projectserver /repo git</ connection> <developerconnection>scm: git: ssh: // projectserver / git /repo git</ developerconnection> <url>http: // projectserver /gitweb /?p=repo git</ url> </scm> </ p r o j e c t>

Build-, Release- und Projektverwaltung Maven SCM-Provider http://mavenapacheorg/scm/githtml <project xmlns= http: //maven apache org /POM/400 > <scm> <connection>scm: git: http: // projectserver /repo git</ connection> <developerconnection>scm: git: ssh: // projectserver / git /repo git</ developerconnection> <url>http: // projectserver /gitweb /?p=repo git</ url> </scm> </ p r o j e c t> Ant über Macros ḥttp://tlrobinsonnet/blog/2008/11/13/ant-tasks-for-git/

Build-, Release- und Projektverwaltung Continuous Integration Jenkins CI/ Hudson CI

Build-, Release- und Projektverwaltung Continuous Integration Jenkins CI/ Hudson CI Cruise Control

Build-, Release- und Projektverwaltung Continuous Integration Jenkins CI/ Hudson CI Cruise Control Buildbot

Build-, Release- und Projektverwaltung Continuous Integration Jenkins CI/ Hudson CI Cruise Control Buildbot Code-Reviews Gerrit [16]

Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin)

Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin) Trac (mit Plugin)

Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin) Trac (mit Plugin) Bugzilla (mit GitZilla)

Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin) Trac (mit Plugin) Bugzilla (mit GitZilla) Mantis (ab 12)

Build-, Release- und Projektverwaltung Issue Tracking Atlassian JIRA (mit Git-Plugin) Trac (mit Plugin) Bugzilla (mit GitZilla) Mantis (ab 12) Redmine

Git als Subversion-Frontend Umstieg auf Git

Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar

Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden

Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden sanfter Einstieg in DVCS

Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden sanfter Einstieg in DVCS Nachteile gegenüber nativem Git eingeschränkte (lokale)

Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden sanfter Einstieg in DVCS Nachteile gegenüber nativem Git eingeschränkte (lokale) langsame Remote-Repository-Aktionen

Git als Subversion-Frontend Warum Git als Frontend? lokal alle Möglichkeiten von Git nutzbar SVN-Infrastruktur kann weitergenutz werden sanfter Einstieg in DVCS Nachteile gegenüber nativem Git eingeschränkte (lokale) langsame Remote-Repository-Aktionen lokale Branches werden im SVN nicht als solche getrackt

Git als Subversion-Frontend SVN-Repository als lokales Git-Repository g i t svn c l o n e s A ~/ svn a u t h o r s t x t ' h t t p s : / / svn company org / p r o j e c t r e p o kann bei großen Repositories sehr lange dauern

Git als Subversion-Frontend SVN-Repository als lokales Git-Repository g i t svn c l o n e s A ~/ svn a u t h o r s t x t ' h t t p s : / / svn company org / p r o j e c t r e p o kann bei großen Repositories sehr lange dauern lokale Git-Commits in SVN-Repository g i t svn dcommit

Git als Subversion-Frontend SVN-Repository als lokales Git-Repository g i t svn c l o n e s A ~/ svn a u t h o r s t x t ' h t t p s : / / svn company org / p r o j e c t r e p o kann bei großen Repositories sehr lange dauern lokale Git-Commits in SVN-Repository g i t svn dcommit neue SVN-Revisions abholen g i t svn f e t c h

Umstieg auf Git vorher prüfen ob alle verwendeten Tools Git unterstützen

Umstieg auf Git vorher prüfen ob alle verwendeten Tools Git unterstützen SVN-Git-Clone mit vollständiger Autoren-Datei

Umstieg auf Git vorher prüfen ob alle verwendeten Tools Git unterstützen SVN-Git-Clone mit vollständiger Autoren-Datei Aufbereitung für Git-Spezialitäten (Tags sind keine Kopien, svn:ignore zu gitignore, )

Umstieg auf Git vorher prüfen ob alle verwendeten Tools Git unterstützen SVN-Git-Clone mit vollständiger Autoren-Datei Aufbereitung für Git-Spezialitäten (Tags sind keine Kopien, svn:ignore zu gitignore, ) gute Anleitung unter http://johnalbinnet/git/convert-subversion-to-git

weiter interessante Anwendungsfälle für Git Verteiltes Bugtracking

weiter interessante Anwendungsfälle für Git Verteiltes Bugtracking Verwaltung von Metadaten zu großen Dateien

weiter interessante Anwendungsfälle für Git Verteiltes Bugtracking Verwaltung von Metadaten zu großen Dateien Wikis https://gitwikikernelorg/indexphp/ InterfacesFrontendsAndTools

Anhang Anhang Gegenüberstellung Subversion- zu Git-Kommandos Kontakt

Anhang Gegenüberstellung Subversion- zu Git-Kommandos svn info git config -l svn status git status svn update git pull svn add git add - git commit svn commit git push svn diff git diff svn merge git merge svn copy git branch bzw git tag - git stash svn merge -c <rev> git cherry-pick

Anhang Kontakt Kontakt Communardo Software GmbH E-Mail: jandittberner@communardode http://wwwcommunardode/home/ techblog/author/jdi

Anhang Referenzen [1] Git project website url: http://wwwgit-scmcom/ [2] Scott Chacon Pro Git Apress, 2009 isbn: 1430218339 url: http://progitorg/book/ [3] Fedora Extra Packages for Enterprise Linux url: http://fedoraprojectorg/wiki/epel [4] msysgit Git for Windows url: http://codegooglecom/p/msysgit/ [5] Cygwin url: http://wwwcygwincom/ [6] TortoiseGit url: http://codegooglecom/p/tortoisegit/ [7] Git Manual gitworkflows (7)

Anhang Referenzen [8] Git Manual githooks (5) [9] Vincent Driessen gitflow url: https://githubcom/nvie/gitflow [10] Vincent Driessen A successful Git branching model 2010 url: http://nviecom/posts/a-successful-gitbranching-model/ [11] Gitorious url: http://gitoriousorg/ [12] Githubcom url: https://githubcom/ [13] BitBucket url: https://bitbucketorg/ [14] SourceForge url: http://wwwsourceforgenet/ [15] Google Code url: http://codegooglecom/

Anhang Referenzen [16] Gerrit Code Review url: http://codegooglecom/p/gerrit/