SlideShare ist ein Scribd-Unternehmen logo
Verteilte Versionsverwaltungssysteme
Sven-S. Porst • porst@sub.uni-goettingen.de
Wir lieben Versionsverwaltung
• Dokumentation:
• Commits: Was? Wann? Wer?
• Commit Messages: Warum?
• Referenzierbarkeit
• Blame
• Branching
• für einzelne: gut – für Kooperationen: notwendig
Versionsverwaltungssysteme
• Dateien & Ordner
• 1990er: CVS
• 2000er: SVN
• 2010er: verteilte Versionsverwaltungssysteme
• bzr (Bazaar) – 2007, Launchpad [Ubuntu, MySQL, GNU]
• git – 2005, github [Linux-Kernel, Android, Rails]
• hg (Mercurial) – 2005, bitbucket [Mozilla, NetBeans, Java…]
Probleme zentraler Versionsverwaltungssysteme
• ohne Kontakt zum Repository geht nichts:
• kein checkout
• kein commit
• keine neuen Branches
• speziell bei SVN:
• den Baum locken ist meist unpraktisch oder wird vergessen
• beim Mergen fluchen dann alle
Der verteilte Ansatz
• keine Abhängigkeit von zentralem Server:
• jeder hat seine eigene Version des Repositories
• Commits können zwischen Versionen des Repositories ausgetauscht
werden
• keine fortlaufenden Revisionsnummern möglich
• Fokus auf Änderungen statt Dateien
git
• Arbeitsablauf:
• Repository einrichten: init
• Repositoryzustand laden: checkout
• Coden
• Ergebnisse zusammenstellen »stagen«: add
• Commiten: commit
• Repositoryzustand senden: push
git
• Versionen:
• Commit-IDs sind Hashes aus Commit-Inhalt und Metadaten
➡ keine Manipulation möglich
➡ Versionsfolge nicht aus den IDs ersichtlich
• Die Metadaten enthalten die ID der Vorgängerversion(en)
Beispiel: Clonen (init + remote + fetch + checkout)
ssp% git clone https://github.com/laullon/gitx.git
Cloning into gitx...
remote: Counting objects: 8404, done.
remote: Compressing objects: 100% (3000/3000), done.
remote: Total 8404 (delta 5598), reused 7768 (delta 5142)
Receiving objects: 100% (8404/8404), 8.90 MiB | 594 KiB/s,
done.
Resolving deltas: 100% (5598/5598), done.
Beispiel: Änderungen committen
• Code Bearbeiten
• Code Committen, auch ohne Kontakt zum Server
% git add .
% git commit -m "Commit Message"
[master 67c5136] Commit Message
1 files changed, 700 insertions(+), 826 deletions(-)

• Wenn gewünscht, Code Bereitstellen mit git push …
(benötigt Kontakt zum Server)
git Tools: git gui
git Tools: gitk
git Tools: github.com
git Tools: GitX auf dem Mac
Zusammenfassung
• Verteilte Versionsverwaltungssysteme bieten:
• einfacheres dezentrales Arbeiten (Büro, Home, Laptop)
• Funktionalität auch ohne Verbindung zum Server
• Branchen und Mergen als natürliche Handlung
• Mehr Freiheiten und weniger Schmerz bei der Entwicklung
➡ Mehr Experimentierfreude
Propaganda
• Download & Dokumentation: http://git-scm.com/
• gut lesbare Anleitungen: http://progit.org
• Torvalds Talk bei Google: Googlen nach »Torvalds git«
• erstaunlich gut: die man-Pages (mit Bindestrich: z.B. man git-pull)
• Ausprobieren!

Weitere ähnliche Inhalte

Andere mochten auch

'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!
Benjamin Schmid
 
Einführung in Git - GameCamp Munich 2011
Einführung in Git - GameCamp Munich 2011Einführung in Git - GameCamp Munich 2011
Einführung in Git - GameCamp Munich 2011
renebruns
 
Verteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit GitVerteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit Git
Jan Dittberner
 
Git im team
Git im teamGit im team
Git im team
Nicole Cordes
 
Versionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und GitVersionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und Git
paultcochrane
 
Do it the_git_way
Do it the_git_wayDo it the_git_way
Do it the_git_way
Peter Ukena
 
Gitlab
GitlabGitlab
Gitlab
heiglandreas
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
Andreas Schreiber
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmen
oose
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
Marcel Eichner
 
The development workflow of git github for beginners
The development workflow of git github for beginnersThe development workflow of git github for beginners
The development workflow of git github for beginners
Gunjan Patel
 
Git workflow step by step
Git workflow step by stepGit workflow step by step
Git workflow step by step
Binh Quan Duc
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
Torben Brodt
 
Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015
Atlassian 대한민국
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
Lemi Orhan Ergin
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
Yoad Snapir
 
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
Stefan Imhoff
 
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
Mario Müller
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
Joel Krebs
 

Andere mochten auch (20)

'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!'Git started' für Fortgeschrittene!
'Git started' für Fortgeschrittene!
 
Einstieg in git
Einstieg in gitEinstieg in git
Einstieg in git
 
Einführung in Git - GameCamp Munich 2011
Einführung in Git - GameCamp Munich 2011Einführung in Git - GameCamp Munich 2011
Einführung in Git - GameCamp Munich 2011
 
Verteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit GitVerteilte Versionskontrolle mit Git
Verteilte Versionskontrolle mit Git
 
Git im team
Git im teamGit im team
Git im team
 
Versionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und GitVersionskontrolle mit Subversion und Git
Versionskontrolle mit Subversion und Git
 
Do it the_git_way
Do it the_git_wayDo it the_git_way
Do it the_git_way
 
Gitlab
GitlabGitlab
Gitlab
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
 
Einsatz von Git im Unternehmen
Einsatz von Git im UnternehmenEinsatz von Git im Unternehmen
Einsatz von Git im Unternehmen
 
git - eine praktische Einführung
git - eine praktische Einführunggit - eine praktische Einführung
git - eine praktische Einführung
 
The development workflow of git github for beginners
The development workflow of git github for beginnersThe development workflow of git github for beginners
The development workflow of git github for beginners
 
Git workflow step by step
Git workflow step by stepGit workflow step by step
Git workflow step by step
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
 
Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!Sei (k)ein Blödmann und nimm Git!
Sei (k)ein Blödmann und nimm Git!
 
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
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
 

Ähnlich wie git Vorstellung

"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
inovex GmbH
 
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
Verein FM Konferenz
 
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Michael Whittaker
 
Git class german / english
Git class german / englishGit class german / english
Git class german / english
Kevin Read
 
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
Marc Müller
 
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM.org
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
fg.informatik Universität Basel
 
Notes Sharepoint Migration
Notes Sharepoint MigrationNotes Sharepoint Migration
Notes Sharepoint Migration
innocate solutions GmbH
 
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
OPEN KNOWLEDGE GmbH
 
Git barcamp stuttgart_2010
Git barcamp stuttgart_2010Git barcamp stuttgart_2010
Git barcamp stuttgart_2010
webholics
 
Ein Gopher im Netz
Ein Gopher im NetzEin Gopher im Netz
Ein Gopher im Netz
Frank Müller
 
Der gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open SourceDer gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open Source
yellowcow
 
micro services
micro servicesmicro services
micro services
smancke
 
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
NETWAYS
 
Sheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
Sheriffing @ Mozilla - OpenSourceTreffen Munich PresentationSheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
Sheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
Carsten Book
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GIT
gedoplan
 
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
NETWAYS
 
JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!
Christian Kaltepoth
 
171211 kitodo
171211 kitodo171211 kitodo

Ähnlich wie git Vorstellung (20)

"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
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
 
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
Welches Versionskontrollsystem sollte ich nutzen? (SVN, Git, Hg)
 
Git class german / english
Git class german / englishGit class german / english
Git class german / english
 
Mercurial
MercurialMercurial
Mercurial
 
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
 
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwic...
 
Version management mit Git und Github
Version management mit Git und Github Version management mit Git und Github
Version management mit Git und Github
 
Notes Sharepoint Migration
Notes Sharepoint MigrationNotes Sharepoint Migration
Notes Sharepoint Migration
 
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
Rufen Sie nicht an – wir rufen Sie an! | Server-sent Events und Web-Sockets i...
 
Git barcamp stuttgart_2010
Git barcamp stuttgart_2010Git barcamp stuttgart_2010
Git barcamp stuttgart_2010
 
Ein Gopher im Netz
Ein Gopher im NetzEin Gopher im Netz
Ein Gopher im Netz
 
Der gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open SourceDer gesamte Redaktionsprozess mit Open Source
Der gesamte Redaktionsprozess mit Open Source
 
micro services
micro servicesmicro services
micro services
 
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael ProkopOSDC 2013 | Continuous Integration in data centers by Michael Prokop
OSDC 2013 | Continuous Integration in data centers by Michael Prokop
 
Sheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
Sheriffing @ Mozilla - OpenSourceTreffen Munich PresentationSheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
Sheriffing @ Mozilla - OpenSourceTreffen Munich Presentation
 
Versionierung mit GIT
Versionierung mit GITVersionierung mit GIT
Versionierung mit GIT
 
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)Foreman: Provisionierungswege (Webinar vom 31. März 2016)
Foreman: Provisionierungswege (Webinar vom 31. März 2016)
 
JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!JSF vs. GWT? JSF und GWT!
JSF vs. GWT? JSF und GWT!
 
171211 kitodo
171211 kitodo171211 kitodo
171211 kitodo
 

Mehr von Sven-S. Porst

Metasuche mit pazpar2
Metasuche mit pazpar2Metasuche mit pazpar2
Metasuche mit pazpar2
Sven-S. Porst
 
xmlinclude für DSpace
xmlinclude für DSpacexmlinclude für DSpace
xmlinclude für DSpace
Sven-S. Porst
 
CouchDB
CouchDBCouchDB
CouchDB
Sven-S. Porst
 
Gefällt mir?
Gefällt mir?Gefällt mir?
Gefällt mir?
Sven-S. Porst
 
Metasuche mit pazpar2
Metasuche mit pazpar2Metasuche mit pazpar2
Metasuche mit pazpar2
Sven-S. Porst
 
Germania Sacra Linked Data, SWIB13
Germania Sacra Linked Data, SWIB13Germania Sacra Linked Data, SWIB13
Germania Sacra Linked Data, SWIB13
Sven-S. Porst
 
xmlinclude
xmlincludexmlinclude
xmlinclude
Sven-S. Porst
 

Mehr von Sven-S. Porst (7)

Metasuche mit pazpar2
Metasuche mit pazpar2Metasuche mit pazpar2
Metasuche mit pazpar2
 
xmlinclude für DSpace
xmlinclude für DSpacexmlinclude für DSpace
xmlinclude für DSpace
 
CouchDB
CouchDBCouchDB
CouchDB
 
Gefällt mir?
Gefällt mir?Gefällt mir?
Gefällt mir?
 
Metasuche mit pazpar2
Metasuche mit pazpar2Metasuche mit pazpar2
Metasuche mit pazpar2
 
Germania Sacra Linked Data, SWIB13
Germania Sacra Linked Data, SWIB13Germania Sacra Linked Data, SWIB13
Germania Sacra Linked Data, SWIB13
 
xmlinclude
xmlincludexmlinclude
xmlinclude
 

git Vorstellung

  • 1. Verteilte Versionsverwaltungssysteme Sven-S. Porst • porst@sub.uni-goettingen.de
  • 2. Wir lieben Versionsverwaltung • Dokumentation: • Commits: Was? Wann? Wer? • Commit Messages: Warum? • Referenzierbarkeit • Blame • Branching • für einzelne: gut – für Kooperationen: notwendig
  • 3. Versionsverwaltungssysteme • Dateien & Ordner • 1990er: CVS • 2000er: SVN • 2010er: verteilte Versionsverwaltungssysteme • bzr (Bazaar) – 2007, Launchpad [Ubuntu, MySQL, GNU] • git – 2005, github [Linux-Kernel, Android, Rails] • hg (Mercurial) – 2005, bitbucket [Mozilla, NetBeans, Java…]
  • 4. Probleme zentraler Versionsverwaltungssysteme • ohne Kontakt zum Repository geht nichts: • kein checkout • kein commit • keine neuen Branches • speziell bei SVN: • den Baum locken ist meist unpraktisch oder wird vergessen • beim Mergen fluchen dann alle
  • 5. Der verteilte Ansatz • keine Abhängigkeit von zentralem Server: • jeder hat seine eigene Version des Repositories • Commits können zwischen Versionen des Repositories ausgetauscht werden • keine fortlaufenden Revisionsnummern möglich • Fokus auf Änderungen statt Dateien
  • 6. git • Arbeitsablauf: • Repository einrichten: init • Repositoryzustand laden: checkout • Coden • Ergebnisse zusammenstellen »stagen«: add • Commiten: commit • Repositoryzustand senden: push
  • 7. git • Versionen: • Commit-IDs sind Hashes aus Commit-Inhalt und Metadaten ➡ keine Manipulation möglich ➡ Versionsfolge nicht aus den IDs ersichtlich • Die Metadaten enthalten die ID der Vorgängerversion(en)
  • 8. Beispiel: Clonen (init + remote + fetch + checkout) ssp% git clone https://github.com/laullon/gitx.git Cloning into gitx... remote: Counting objects: 8404, done. remote: Compressing objects: 100% (3000/3000), done. remote: Total 8404 (delta 5598), reused 7768 (delta 5142) Receiving objects: 100% (8404/8404), 8.90 MiB | 594 KiB/s, done. Resolving deltas: 100% (5598/5598), done.
  • 9. Beispiel: Änderungen committen • Code Bearbeiten • Code Committen, auch ohne Kontakt zum Server % git add . % git commit -m "Commit Message" [master 67c5136] Commit Message 1 files changed, 700 insertions(+), 826 deletions(-) • Wenn gewünscht, Code Bereitstellen mit git push … (benötigt Kontakt zum Server)
  • 13. git Tools: GitX auf dem Mac
  • 14. Zusammenfassung • Verteilte Versionsverwaltungssysteme bieten: • einfacheres dezentrales Arbeiten (Büro, Home, Laptop) • Funktionalität auch ohne Verbindung zum Server • Branchen und Mergen als natürliche Handlung • Mehr Freiheiten und weniger Schmerz bei der Entwicklung ➡ Mehr Experimentierfreude
  • 15. Propaganda • Download & Dokumentation: http://git-scm.com/ • gut lesbare Anleitungen: http://progit.org • Torvalds Talk bei Google: Googlen nach »Torvalds git« • erstaunlich gut: die man-Pages (mit Bindestrich: z.B. man git-pull) • Ausprobieren!