Einführung Git

Einführung Git

Session zu Basiswissen in Git

0b290be95d6c4291c1404e64cc766129?s=128

Dirk Deimeke

August 19, 2013
Tweet

Transcript

  1. Einf¨ uhrung in Git Dirk Deimeke My own IT 19.

    August 2013 ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 1 / 23
  2. Inhalt 1 Etwas Theorie Basiswissen Git 2 Praxis Installation Erstes

    Repository Besonderheiten Vorgucker 3 Weiterf¨ uhrende Informationen Im Web Randnotiz Rest ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 2 / 23
  3. Etwas Theorie Basiswissen Allgemeines zu Versionskontrollsystemen (1) Dateien versionieren alte

    Revisionen sichern und wieder herstellen Unterschiede zwischen Versionen anzeigen Zentralisiertes Versionskontrollsystem (VCS) CVS oder Subversion (SVN) Daten und Historie liegen auf einem zentralen Server Mitarbeiter checkt eine lokale Arbeitskopie aus ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 3 / 23
  4. Etwas Theorie Basiswissen Allgemeines zu Versionskontrollsystemen (2) Verteiltes Versionskontrollsystem (distributed

    VCS) Mercurial (HG), Bazaar (BZR) oder Git Alle Ver¨ anderungen liegen lokal und nicht nur auf dem Server Jede Kopie (Klon) ist somit ein vollumf¨ angliches Backup Verschiedene lokale Kopien k¨ onnen synchronisiert werden ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 4 / 23
  5. Etwas Theorie Git Und jetzt Git Linus Torvalds Initiator und

    Hauptentwickler von Git Ist stolz auf Git, mehr als auf Linux Zitat Linus Torvalds Linux ist etwas nachgemachtes, Git ist etwas v¨ ollig Neues. Zitat Anwender Git ist cool :-) ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 5 / 23
  6. Etwas Theorie Git Git-Objekte (1) Keine Angst, es gibt nur

    vier. Und mehr Theorie gibt es auch nicht, daf¨ ur gibt es wirklich gute B¨ ucher. Blobs – ” Binary Large Objects“ In Blobs liegen alle Dateien, die Dateien werden durch ihre Pr¨ ufsumme (SHA1 Hash) referenziert. In Blobs ist nicht der Name enthalten. So stellt Git sicher, dass mehrere Dateien mit gleichem Inhalt nur ein Mal gespeichert werden. Trees Ein Baumobjekt steht f¨ ur einen Verzeichniszweig, darin enthalten sind ” Blob identifier“ (Referenzen auf Dateien), Pfadnamen und ein paar Metadaten. Baumobjekte k¨ onnen sich gegenseitig referenzieren. Damit kann man einen kompletten Verzeichnisbaum darstellen. ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 6 / 23
  7. Etwas Theorie Git Git-Objekte (2) Commits Ein Commit beinhaltet die

    Daten f¨ ur jede Ver¨ anderung eines Repositories. Enthalten sind Autor, Committer, Commit Datum und die Lognachricht. Jeder Commit zeigt auf ein einzelnes Verzeichnisobjekt, das den Stand des Repositories zu einem bestimmten Zeitpunkt repr¨ asentiert. Bis auf den allerersten Commit (Init), hat jeder Commit einen Eltern (Parent) Commit. Tags Tags sind einfach lesbare Namen f¨ ur Objekte (meistens f¨ ur Commits), die durch ihre SHA1-Pr¨ ufsumme identifiziert werden. 1e9036eb5764aea857bbd5f0522efbfec3ff4a36 ist zwar eindeutig, aber ” Version-1.1“ ist deutlich lesbarer. ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 7 / 23
  8. Praxis Installation Git installieren Git Homepage yum install git aptitude

    install git-core ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 8 / 23
  9. Praxis Installation Erste Konfiguration Nutzerkonfiguration g i t c o

    n f i g −−g l o b a l user . name ” Dirk Deimeke” g i t c o n f i g −−g l o b a l user . email ” dirk@deimeke . net ” g i t c o n f i g −−g l o b a l c o l o r . ui always ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 9 / 23
  10. Praxis Erstes Repository Erstes Repository Einfaches Beispiel mkdir r e

    p o s i t o r y cd r e p o s i t o r y g i t i n i t g i t add −A . g i t commit −m ” I n i t ” l s −l a . g i t cat . g i t / c o n f i g ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 10 / 23
  11. Praxis Erstes Repository Arbeiten Und die ersten Dateien g i

    t s t a t u s vim Erste −Datei . t x t g i t s t a t u s g i t add Erste −Datei . t x t g i t s t a t u s g i t commit −m ” Erste Datei , j e t z t f r i s c h ” g i t s t a t u s ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 11 / 23
  12. Praxis Erstes Repository Differenzen Unterschiede vim Erste −Datei . t

    x t g i t s t a t u s g i t d i f f Erste −Datei . t x t vim Zweite−Datei . t x t g i t s t a t u s g i t d i f f HEAD g i t commit −am ”Aenderungen an der e r s t e n Datei ” g i t add Zweite−Datei . t x t g i t commit −m ” Zweite Datei ” ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 12 / 23
  13. Praxis Erstes Repository Mist gebaut? Datei irrt¨ umlich gel¨ oscht

    rm Zweite−Datei . t x t g i t s t a t u s g i t checkout Zweite−Datei . t x t ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 13 / 23
  14. Praxis Erstes Repository Einfache Kommandos Was man erst einmal braucht

    g i t log # L i e s t d i e H i s t o r i e und z e i g t a l l e # Changes g i t log −p # z e i g t ausserdem D i f f e r e n z e n # zwischen Changes g i t log −−s t a t # Summiert Changes auf g i t mv # Datei oder V e r z e i c h n i s umbenennen g i t rm # Datei oder V e r z e i c h n i s loeschen g i t grep # Durchsucht das Repository nach # einem Muster ( n i c h t b i n a e r ) ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 14 / 23
  15. Praxis Erstes Repository Fortgeschrittene Kommandos Das braucht man selten g

    i t a r c h i v e # Archiv e i n e s Teilbaums e r s t e l l e n g i t r e v e r t # Nimmt den l e t z t e n Commit mit einem # neuen Commit zurueck g i t blame # Wer t r a e g t Schuld ? ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 15 / 23
  16. Praxis Besonderheiten Manpages man git Besonderheit f¨ ur Git-Kommandos, es

    gibt Hilfe f¨ ur jedes Kommando, die Manpage f¨ ur git add findet sich unter git-add. Es gibt viele, wirklich viele Manpages. ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 16 / 23
  17. Praxis Besonderheiten Protokolle Auf Git kann ¨ uber viele verschiedene

    Protokolle zugegriffen werden Disk oder Filesystem HTTP[S] Git Protokoll ¨ uber TCP Git Protokoll ¨ uber SSH (bevorzugt) ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 17 / 23
  18. Praxis Vorgucker Klonen Meistens, Klon ¨ uber SSH git clone

    user@host:/some/path/to/repo.git xxx Macht einen lokalen Klon ins Verzeichnis xxx. Checkt den Zweig ” HEAD“ als master aus Setzt das entfernte Repository als Origin ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 18 / 23
  19. Praxis Vorgucker Hochladen Lokal am Master arbeiten arbeiten ; git

    commit -a Eventuell pr¨ ufen, was sich ver¨ andert hat git fetch origin ; git diff master origin/master Aktualisieren vom Upstream Mit merge: git pull origin master Mit rebase: git pull --rebase origin master Und Hochladen zum Upstream git push origin master ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 19 / 23
  20. Weiterf¨ uhrende Informationen Im Web Links (1) Git Homepage Wikipedia

    ¨ uber Git Git in 15 Minuten – interaktiver Online Kurs Git How To CRE130 Verteilte Versionskontrollsysteme (Podcast) ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 20 / 23
  21. Weiterf¨ uhrende Informationen Im Web Links (2) Pro Git Buch

    (Gratis!) Pro Git auf GitHub git clone https://github.com/progit/progit.git progit.git O’Reilly zu Git Open Source Press Git GitHub GitHub Pages ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 21 / 23
  22. Weiterf¨ uhrende Informationen Randnotiz Subversion und Git Man kann mit

    git svn auch auf Subversion-Repositories zugreifen, eventuell muss das svn-Feature nachinstalliert werden. Vorteil ist, dass man dabei die Vorteile von Git (alles ist lokal) hat. Der folgende Link enth¨ alt einen Git Crash Course, f¨ ur die die Subversion bereits kennen: Git - SVN Crash Course Ich habe einmal aufgeschrieben, wie man seine Subversion-Repositories nach Git migrieren kann: Migration von Subversion zu Git ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 22 / 23
  23. Weiterf¨ uhrende Informationen Rest Ausblick und Lizenz Ausblick In der

    n¨ achsten Folge geht es um die Arbeit mit Remote Repositories am Beispiel von GitHub. Lizenz Lizenz dieses Talks ist CC-BY. ddeimeke (My own IT) Einf¨ uhrung in Git 19. August 2013 23 / 23