Verteilte Versionsverwaltungssysteme
Sven-S. Porst • porst@sub.uni-goettingen.de
Wir lieben Versionsverwaltung
• Dokumentation:
• Commits: Was? Wann? Wer?
• Commit Messages: Warum?
• Referenzierbarkeit
•...
Versionsverwaltungssysteme
• Dateien & Ordner
• 1990er: CVS
• 2000er: SVN
• 2010er: verteilte Versionsverwaltungssysteme
•...
Probleme zentraler Versionsverwaltungssysteme
• ohne Kontakt zum Repository geht nichts:
• kein checkout
• kein commit
• k...
Der verteilte Ansatz
• keine Abhängigkeit von zentralem Server:
• jeder hat seine eigene Version des Repositories
• Commit...
git
• Arbeitsablauf:
• Repository einrichten: init
• Repositoryzustand laden: checkout
• Coden
• Ergebnisse zusammenstelle...
git
• Versionen:
• Commit-IDs sind Hashes aus Commit-Inhalt und Metadaten
➡ keine Manipulation möglich
➡ Versionsfolge nic...
Beispiel: Clonen (init + remote + fetch + checkout)
ssp% git clone https://github.com/laullon/gitx.git
Cloning into gitx.....
Beispiel: Änderungen committen
• Code Bearbeiten
• Code Committen, auch ohne Kontakt zum Server
% git add .
% git commit -...
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)
• F...
Propaganda
• Download & Dokumentation: http://git-scm.com/
• gut lesbare Anleitungen: http://progit.org
• Torvalds Talk be...
Nächste SlideShare
Wird geladen in …5
×

git Vorstellung

351 Aufrufe

Veröffentlicht am

Vorstellung von git in der Großen Entwicklerrunde der SUB Göttingen am 29.3.2011.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
351
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
4
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

git Vorstellung

  1. 1. Verteilte Versionsverwaltungssysteme Sven-S. Porst • porst@sub.uni-goettingen.de
  2. 2. Wir lieben Versionsverwaltung • Dokumentation: • Commits: Was? Wann? Wer? • Commit Messages: Warum? • Referenzierbarkeit • Blame • Branching • für einzelne: gut – für Kooperationen: notwendig
  3. 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. 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. 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. 6. git • Arbeitsablauf: • Repository einrichten: init • Repositoryzustand laden: checkout • Coden • Ergebnisse zusammenstellen »stagen«: add • Commiten: commit • Repositoryzustand senden: push
  7. 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. 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. 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)
  10. 10. git Tools: git gui
  11. 11. git Tools: gitk
  12. 12. git Tools: github.com
  13. 13. git Tools: GitX auf dem Mac
  14. 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. 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!

×