• Like
git Vorstellung
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

git Vorstellung

  • 116 views
Published

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

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
116
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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)
  • 10. git Tools: git gui
  • 11. git Tools: gitk
  • 12. git Tools: github.com
  • 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!