git Vorstellung
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

git Vorstellung

on

  • 239 views

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.

Statistics

Views

Total Views
239
Views on SlideShare
239
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

git Vorstellung Presentation 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!