Top Banner
Verteilte Versionsverwaltungssysteme Sven-S. Porst • [email protected]
15

git Vorstellung

Jun 03, 2015

Download

Technology

Sven-S. Porst

Vorstellung von git in der Großen Entwicklerrunde der SUB Göttingen am 29.3.2011.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: git Vorstellung

Verteilte Versionsverwaltungssysteme

Sven-S. Porst • [email protected]

Page 2: git Vorstellung

Wir lieben Versionsverwaltung

• Dokumentation:

• Commits: Was? Wann? Wer?

• Commit Messages: Warum?

• Referenzierbarkeit

• Blame

• Branching

• für einzelne: gut – für Kooperationen: notwendig

Page 3: git Vorstellung

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…]

Page 4: git Vorstellung

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

Page 5: git Vorstellung

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

Page 6: git Vorstellung

git

• Arbeitsablauf:

• Repository einrichten: init

• Repositoryzustand laden: checkout

• Coden

• Ergebnisse zusammenstellen »stagen«: add

• Commiten: commit

• Repositoryzustand senden: push

Page 7: git Vorstellung

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)

Page 8: git Vorstellung

Beispiel: Clonen (init + remote + fetch + checkout)

ssp% git clone https://github.com/laullon/gitx.gitCloning 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.

Page 9: git Vorstellung

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)

Page 10: git Vorstellung

git Tools: git gui

Page 11: git Vorstellung

git Tools: gitk

Page 12: git Vorstellung

git Tools: github.com

Page 13: git Vorstellung

git Tools: GitX auf dem Mac

Page 14: git Vorstellung

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

Page 15: git Vorstellung

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!