Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Einführung Git

Einführung Git

Session zu Basiswissen in Git

Dirk Deimeke

August 19, 2013
Tweet

More Decks by Dirk Deimeke

Other Decks in Technology

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide