SlideShare une entreprise Scribd logo
1  sur  27
GEDOPLAN Expertenkreis Java
März 2015
Versionierung mit Git
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Agenda
 Vorstellung
 Grober Überblick über Git
 Vor- und Nachteile
 Migration
 Best Practices
 Überblick IDE-Plugins und GUI-Clients
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
ITSD Consulting GmbH
 IT Systemhaus aus OWL
 Standorte in Minden und Bünde
 ca. 20 IT-Experten
 bundesweit tätig
 Schwerpunkte:
 Softwareentwicklung mit Java
 Beratung im Bereich Enterprise-Technologien
 Umsetzung von IT-Projekten im
Unternehmensumfeld
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Was ist Git?
 System zur Verwaltung von Versionsständen von Dateien
 Im Unterschied zu CVS oder Subversion (SVN) ein verteiltes,
dezentrales System
 es ist kein zentraler Server nötig
 jeder Benutzer arbeitet mit einem kompletten Klon
eines remote Repositories
 entwickelt zur Verwaltung des Quellcodes des Linux-Kernels
 2005 wurde Bitkeeper kostenpflichtig
 Linus Torvalds entwickelt daher Git
 Parallel Entwicklung von Mercurial von anderen Entwicklern
 Seit 2008: Github beschleunigt als Hoster für OpenSource-Projekte
die Verbreitung
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Zentrales Versionskontrollsystem
Arbeitsverzeichnis
 Test.pdf
 Hallo.java
Entwickler A
Arbeitsverzeichnis
 Test.pdf
 Hallo.java
Entwickler B
Repository
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Dezentrales Versionskontrollsystem
Arbeitsverzeichnis
 Test.pdf
 Hallo.java
Entwickler A
Repository
Fetch/Push
Checkout/
Commit
Arbeitsverzeichnis
 Test.pdf
 Hallo.java
Entwickler B Repository
Checkout/
Commit
Repository
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Repository Strategien
 Zentral
 Normalerweise in Unternehmen
Zentrales
Repository
Entwickler Entwickler Entwickler
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Repository Strategien
 Integrationsmanager
 Wird oft von Open Source Projekten genutzt (z.B. bei GitHub)
 Verwendung von Pull Requests
Entwickler
öffentlich
Entwickler
öffentlich
Entwickler
öffentlich
Integrations
manager
Entwickler
privat
Entwickler
privat
Entwickler
privat
Blessed
Repository
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Repository Strategien
 Diktator und Leutnant
 z.B. beim Linux-Kernel verwendet
 Verwendung von Pull-Requests
Blessed
Repository
Entwickler
öffentlich
Entwickler
öffentlich
Entwickler
öffentlich
Diktator
Leutnant Leutnant
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Weiteres zu Git
 Es werden Snapshots des gesamten Projekts versioniert
 Pro Commit werden nur Dateien gespeichert, die sich tatsächlich
geändert haben
 Commits kann man sich als Knoten eines Graphen vorstellen, die auf
ihre Vorgänger zeigen
 Daten werden komprimiert
 Manipulationen fallen sofort auf, da die Commit ID ein Hash-Wert
basierend auf Metainformationen, Inhalt und Eltern-Commits ist
 automatische Konvertierung von Zeilenenden
 Branches werden zum zentralen Konzept
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Workflow mit Branches "Gitflow"
 Git ermöglicht verschiedene Workflows
 Dieser Workflow hat sich durchgesetzt
 Veröffentlicht von Vincent Driessen
 Es ist keine Erweiterung für Git - Alles ist mit Bordmitteln umsetzbar
master
hotfix
release
development
feature
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Noch mehr zu Git
 Staging area zum Zusammenstellen von Änderungen, die committed
werden sollen
 "commit" Befehl schreibt nur in lokales Repository
 analog liest "checkout" nur aus dem lokalen Repository
 Zum Übermitteln der Änderungen an ein remote Repository ist ein
weiterer Befehl nötig: "push"
 Zum Aktualisieren des lokalen Repositories dient "fetch"
 "pull" ist ein "fetch" mit anschließendem Merge der Änderungen in
den lokalen Workspace
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Daten in das (lokale) Repository schreiben
Arbeitsverzeichnis Staging Area Git Repository
Dateien in die Staging Area
hinzufügen
Commit erzeugen
Stand auschecken
git commitgit add
git checkout
Dateien zur Staging Area hinzufügen und Commit erzeugen
git commit -a
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Der Weg vom/zum remote Repository
Arbeitsverzeichnis
Lokales
Repository
Zentrales
Repository
Push
Pull
FetchMerge / Rebase
Commit
Clone
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Vorteile
 Geschwindigkeit von fast allen Operationen
 Einfaches und sicheres Mergen
 Einfaches und schnelles Branching
 Branches/Tags erzeugen im Ggs. zu SVN keine Kopien
 lokale Branches zum Wechsel zwischen Aufgaben
 Gute Erkennung von umbenannten oder verschobenen Dateien
 Dezentrales Arbeiten
 Einbindung von Code-Review möglich
 Flexibilität
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Nachteile
 Binäre Dateien (jeweils alle Versionen im lokalen Repository)
 Speicherplatzverbrauch
 Dauer des Klonvorgangs
 SHA1-Hash nicht gut als Versions- oder Build-Nummer geeignet
(im Gegensatz zur Revisions-Nummer bei SVN)
 Flexibilität erkauft mit Komplexität
 Git betrachtet nur Dateien, leere Verzeichnisse werden ignoriert
 Berechtigungen nur für das gesamte Repository
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Migration von SVN/CVS
 Unterstützung durch Skripte
 Nutzung von SVN als "remote Repository" möglich
 Wichtig:
 Migration gründlich planen
 vorhandene Daten analysieren
 Anpassung bzw. Erstellung eines Workflows
 Richtige Einteilung der Repositories
 Bei langer Historie evtl. Kürzung der Historie
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Best Practices
 Beim Einstieg nicht sofort alle Möglichkeiten nutzen
 aussagekräftige Commit Kommentare schreiben
 Änderungen thematisch in Commits zusammenfassen
 Im Team auf einen Workflow einigen
 Änderungen aus Basis eines Branches häufig in den Branch übernehmen
 Keine Angst vor Rebase ("Umhängen" von Commits an einen anderen
Eltern-Commit)
 Nie bereits per "push" veröffentlichte Historie ändern, etwa Commits
verschieben (Rebase), Branches umbenennen
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Tools
 SourceTree
 Git Gui / Gitk
 Github Client
 TortoiseGit
 EGit / JGit
 GitX (L)
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
SourceTree
 Von Atlassian
 Kostenlos unter http://www.sourcetreeapp.com/
 Nutzt natives Git
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Git Gui/Gitk
 Ist in der MsysGit Installation enthalten
 Git Gui vollwertiges Programm zur Arbeit mit einem Git Repository
 Gitk stellt Log dar
 Kann über Kommandozeile aufgerufen werden
 Probleme mit Übersetzungen
 Deutsche Sprachdatei entfernen für englische Sprache
 Kostenlos
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Github Client
 Eigenes natives Git
 Funktioniert auch mit eigenen Repositories
 Kostenlos unter https://windows.github.com/
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
TortoiseGit
 Nutzt natives Git
 Angelehnt an TortoiseSVN
 Kostenlos, siehe
https://tortoisegit.org/
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Egit/JGit
 JGit ist eine Java Implementierung von Git
 EGit als Eclipse Plugin
 JGit auch verwendet von Netbeans und IntelliJ IDEA
 Kostenlos
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
GitX (L)
 grafischer Git Client für MacOS X
 Kostenlos
 Download unter http://gitx.laullon.com/
Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015
Die Serverseite
 Nutzung über Netzwerk-Shares ohne Server möglich
 einfacher Server in Git enthalten
 gitolite ist ein kostenloser Server mit Rechteverwaltung
http://gitolite.com/
 Attlasian bietet kostenpflichtig "Stash" an:
https://www.atlassian.com/software/stash
 klare Empfehlung eines Vortragsteilnehmers:
GitLab – weitere Infos unter https://gitlab.com/
ITSD Consulting GmbH
Blankensteinstraße 62
32257 Bünde
Telefon: +49 - 5223 - 793 34 00
Telefax: +49 - 5223 - 793 34 32
Web: www.itsd-consulting.de
E-Mail: info@itsd-consulting.de
Ihr Ansprechpartner
Carsten Frewert

Contenu connexe

Tendances

Git vs SVN DevCon 2011
Git vs SVN DevCon 2011Git vs SVN DevCon 2011
Git vs SVN DevCon 2011Mario Müller
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!JanWeinschenker
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmenoose
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumNicholas Dille
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOpsAarno Aukia
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everythingcusy GmbH
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsChristian Erhardt
 

Tendances (11)

Deployment
DeploymentDeployment
Deployment
 
Git vs SVN DevCon 2011
Git vs SVN DevCon 2011Git vs SVN DevCon 2011
Git vs SVN DevCon 2011
 
Eine Stunde was mit Api First!
Eine Stunde was mit Api First!Eine Stunde was mit Api First!
Eine Stunde was mit Api First!
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmen
 
Was gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-UniversumWas gibt es Neues im Docker-Universum
Was gibt es Neues im Docker-Universum
 
Deployment 2.0
Deployment 2.0Deployment 2.0
Deployment 2.0
 
Cloud Native Computing & DevOps
Cloud Native Computing & DevOpsCloud Native Computing & DevOps
Cloud Native Computing & DevOps
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code Reviews
 

Similaire à Versionierung mit GIT

BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...Marc Müller
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und GerritStefan Lay
 
Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011Stefan Lay
 
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...msohn
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungMario Müller
 
Enterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanEnterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanCollabNet
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
FMK2015: Einführung in Codeversionierungssysteme by Thomas HirtFMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
FMK2015: Einführung in Codeversionierungssysteme by Thomas HirtVerein FM Konferenz
 
DWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersDWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersMarc Müller
 
OGD Cockpit Barcamp Bochum Krabina 2022.pdf
OGD Cockpit Barcamp Bochum Krabina 2022.pdfOGD Cockpit Barcamp Bochum Krabina 2022.pdf
OGD Cockpit Barcamp Bochum Krabina 2022.pdfBernhard Krabina
 
Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)
Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)
Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)Christian Janz
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit MavenStefan Scheidt
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtOPITZ CONSULTING Deutschland
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradleadesso AG
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cbbofh42
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)NETWAYS
 

Similaire à Versionierung mit GIT (20)

BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
BASTA Spring 2016 - Moderne Versionsverwaltung mit Git, und der neue Build-Se...
 
Eclipse, Git und Gerrit
Eclipse, Git und GerritEclipse, Git und Gerrit
Eclipse, Git und Gerrit
 
Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011Entwicklertag Karlsruhe 2011
Entwicklertag Karlsruhe 2011
 
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
Effiziente Entwicklungsprozesse mit Git, EGit und Gerrit - Intland Technology...
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
 
Gearconf 2011
Gearconf 2011Gearconf 2011
Gearconf 2011
 
Enterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - GermanEnterprise Git Adoption Webinar - German
Enterprise Git Adoption Webinar - German
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
FMK2015: Einführung in Codeversionierungssysteme by Thomas HirtFMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
FMK2015: Einführung in Codeversionierungssysteme by Thomas Hirt
 
DWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS EntwicklersDWX 2017 - GIT im Leben eines VS Entwicklers
DWX 2017 - GIT im Leben eines VS Entwicklers
 
OGD Cockpit Barcamp Bochum Krabina 2022.pdf
OGD Cockpit Barcamp Bochum Krabina 2022.pdfOGD Cockpit Barcamp Bochum Krabina 2022.pdf
OGD Cockpit Barcamp Bochum Krabina 2022.pdf
 
Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)
Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)
Vaadin - Yet another Java Web Framework? (Google DevFest Karlsruhe 2012)
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
 
Ü̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und GradleÜ̈ber Ant und Maven zu SBT und Gradle
Ü̈ber Ant und Maven zu SBT und Gradle
 
TYPO3 GitLab CI
TYPO3 GitLab CITYPO3 GitLab CI
TYPO3 GitLab CI
 
Groupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 CbGroupware Linuxtag 2008 Cb
Groupware Linuxtag 2008 Cb
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
 
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
Git: Grundlagen der Versionsverwaltung (Webinar vom 17.06.2015)
 

Versionierung mit GIT

  • 1. GEDOPLAN Expertenkreis Java März 2015 Versionierung mit Git
  • 2. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Agenda  Vorstellung  Grober Überblick über Git  Vor- und Nachteile  Migration  Best Practices  Überblick IDE-Plugins und GUI-Clients
  • 3. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 ITSD Consulting GmbH  IT Systemhaus aus OWL  Standorte in Minden und Bünde  ca. 20 IT-Experten  bundesweit tätig  Schwerpunkte:  Softwareentwicklung mit Java  Beratung im Bereich Enterprise-Technologien  Umsetzung von IT-Projekten im Unternehmensumfeld
  • 4. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Was ist Git?  System zur Verwaltung von Versionsständen von Dateien  Im Unterschied zu CVS oder Subversion (SVN) ein verteiltes, dezentrales System  es ist kein zentraler Server nötig  jeder Benutzer arbeitet mit einem kompletten Klon eines remote Repositories  entwickelt zur Verwaltung des Quellcodes des Linux-Kernels  2005 wurde Bitkeeper kostenpflichtig  Linus Torvalds entwickelt daher Git  Parallel Entwicklung von Mercurial von anderen Entwicklern  Seit 2008: Github beschleunigt als Hoster für OpenSource-Projekte die Verbreitung
  • 5. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Zentrales Versionskontrollsystem Arbeitsverzeichnis  Test.pdf  Hallo.java Entwickler A Arbeitsverzeichnis  Test.pdf  Hallo.java Entwickler B Repository
  • 6. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Dezentrales Versionskontrollsystem Arbeitsverzeichnis  Test.pdf  Hallo.java Entwickler A Repository Fetch/Push Checkout/ Commit Arbeitsverzeichnis  Test.pdf  Hallo.java Entwickler B Repository Checkout/ Commit Repository
  • 7. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Repository Strategien  Zentral  Normalerweise in Unternehmen Zentrales Repository Entwickler Entwickler Entwickler
  • 8. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Repository Strategien  Integrationsmanager  Wird oft von Open Source Projekten genutzt (z.B. bei GitHub)  Verwendung von Pull Requests Entwickler öffentlich Entwickler öffentlich Entwickler öffentlich Integrations manager Entwickler privat Entwickler privat Entwickler privat Blessed Repository
  • 9. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Repository Strategien  Diktator und Leutnant  z.B. beim Linux-Kernel verwendet  Verwendung von Pull-Requests Blessed Repository Entwickler öffentlich Entwickler öffentlich Entwickler öffentlich Diktator Leutnant Leutnant
  • 10. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Weiteres zu Git  Es werden Snapshots des gesamten Projekts versioniert  Pro Commit werden nur Dateien gespeichert, die sich tatsächlich geändert haben  Commits kann man sich als Knoten eines Graphen vorstellen, die auf ihre Vorgänger zeigen  Daten werden komprimiert  Manipulationen fallen sofort auf, da die Commit ID ein Hash-Wert basierend auf Metainformationen, Inhalt und Eltern-Commits ist  automatische Konvertierung von Zeilenenden  Branches werden zum zentralen Konzept
  • 11. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Workflow mit Branches "Gitflow"  Git ermöglicht verschiedene Workflows  Dieser Workflow hat sich durchgesetzt  Veröffentlicht von Vincent Driessen  Es ist keine Erweiterung für Git - Alles ist mit Bordmitteln umsetzbar master hotfix release development feature
  • 12. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Noch mehr zu Git  Staging area zum Zusammenstellen von Änderungen, die committed werden sollen  "commit" Befehl schreibt nur in lokales Repository  analog liest "checkout" nur aus dem lokalen Repository  Zum Übermitteln der Änderungen an ein remote Repository ist ein weiterer Befehl nötig: "push"  Zum Aktualisieren des lokalen Repositories dient "fetch"  "pull" ist ein "fetch" mit anschließendem Merge der Änderungen in den lokalen Workspace
  • 13. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Daten in das (lokale) Repository schreiben Arbeitsverzeichnis Staging Area Git Repository Dateien in die Staging Area hinzufügen Commit erzeugen Stand auschecken git commitgit add git checkout Dateien zur Staging Area hinzufügen und Commit erzeugen git commit -a
  • 14. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Der Weg vom/zum remote Repository Arbeitsverzeichnis Lokales Repository Zentrales Repository Push Pull FetchMerge / Rebase Commit Clone
  • 15. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Vorteile  Geschwindigkeit von fast allen Operationen  Einfaches und sicheres Mergen  Einfaches und schnelles Branching  Branches/Tags erzeugen im Ggs. zu SVN keine Kopien  lokale Branches zum Wechsel zwischen Aufgaben  Gute Erkennung von umbenannten oder verschobenen Dateien  Dezentrales Arbeiten  Einbindung von Code-Review möglich  Flexibilität
  • 16. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Nachteile  Binäre Dateien (jeweils alle Versionen im lokalen Repository)  Speicherplatzverbrauch  Dauer des Klonvorgangs  SHA1-Hash nicht gut als Versions- oder Build-Nummer geeignet (im Gegensatz zur Revisions-Nummer bei SVN)  Flexibilität erkauft mit Komplexität  Git betrachtet nur Dateien, leere Verzeichnisse werden ignoriert  Berechtigungen nur für das gesamte Repository
  • 17. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Migration von SVN/CVS  Unterstützung durch Skripte  Nutzung von SVN als "remote Repository" möglich  Wichtig:  Migration gründlich planen  vorhandene Daten analysieren  Anpassung bzw. Erstellung eines Workflows  Richtige Einteilung der Repositories  Bei langer Historie evtl. Kürzung der Historie
  • 18. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Best Practices  Beim Einstieg nicht sofort alle Möglichkeiten nutzen  aussagekräftige Commit Kommentare schreiben  Änderungen thematisch in Commits zusammenfassen  Im Team auf einen Workflow einigen  Änderungen aus Basis eines Branches häufig in den Branch übernehmen  Keine Angst vor Rebase ("Umhängen" von Commits an einen anderen Eltern-Commit)  Nie bereits per "push" veröffentlichte Historie ändern, etwa Commits verschieben (Rebase), Branches umbenennen
  • 19. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Tools  SourceTree  Git Gui / Gitk  Github Client  TortoiseGit  EGit / JGit  GitX (L)
  • 20. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 SourceTree  Von Atlassian  Kostenlos unter http://www.sourcetreeapp.com/  Nutzt natives Git
  • 21. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Git Gui/Gitk  Ist in der MsysGit Installation enthalten  Git Gui vollwertiges Programm zur Arbeit mit einem Git Repository  Gitk stellt Log dar  Kann über Kommandozeile aufgerufen werden  Probleme mit Übersetzungen  Deutsche Sprachdatei entfernen für englische Sprache  Kostenlos
  • 22. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Github Client  Eigenes natives Git  Funktioniert auch mit eigenen Repositories  Kostenlos unter https://windows.github.com/
  • 23. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 TortoiseGit  Nutzt natives Git  Angelehnt an TortoiseSVN  Kostenlos, siehe https://tortoisegit.org/
  • 24. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Egit/JGit  JGit ist eine Java Implementierung von Git  EGit als Eclipse Plugin  JGit auch verwendet von Netbeans und IntelliJ IDEA  Kostenlos
  • 25. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 GitX (L)  grafischer Git Client für MacOS X  Kostenlos  Download unter http://gitx.laullon.com/
  • 26. Versionierung mit Git GEDOPLAN Expertenkreis Java - 26. März 2015 Die Serverseite  Nutzung über Netzwerk-Shares ohne Server möglich  einfacher Server in Git enthalten  gitolite ist ein kostenloser Server mit Rechteverwaltung http://gitolite.com/  Attlasian bietet kostenpflichtig "Stash" an: https://www.atlassian.com/software/stash  klare Empfehlung eines Vortragsteilnehmers: GitLab – weitere Infos unter https://gitlab.com/
  • 27. ITSD Consulting GmbH Blankensteinstraße 62 32257 Bünde Telefon: +49 - 5223 - 793 34 00 Telefax: +49 - 5223 - 793 34 32 Web: www.itsd-consulting.de E-Mail: info@itsd-consulting.de Ihr Ansprechpartner Carsten Frewert

Notes de l'éditeur

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26