Git - Versionsverwaltung auf die coole Art

Git - Versionsverwaltung auf die coole Art

Git als verteilte Versionskontrolle wird immer beliebter. Das 2002 gestartete Projekt erfuhr nicht zuletzt durch GitHub, BitBucket und die große Unterstützung aus der Open Source Community einen enormen Aufschwung. Mittlerweile haben selbst kommerziell ausgerichtete Softwarefirmen wie Microsoft die Stärken von Git erkannt und unterstützen das System in ihren eigenen Produkten.

Zeit also, sich mit Git als Versionkontrollsystem einmal auseinanderzusetzen, falls noch nicht geschehen.

Der Vortrag vermittelt ein breites Grundwissen im Umgang mit Git. Von der Installation, über das Anlegen von Repositories und dem ersten Commit bis hin zur Arbeit in verteilten Teams und dem nachvollziehen von Änderungen.

60a656faee10521db1c5052da540a3c8?s=128

Andreas Richter

August 11, 2014
Tweet

Transcript

  1. 4.

    Änderungen an Dateien über die Zeit protokollieren Wiederherstellen -> Revisionssicherheit

    Nachvollziehen -> Transparenz Zurücksetzen -> Sicherheit Warum überhaupt eine Versionsverwaltung?
  2. 5.

    Drei Arten der Versionverwaltungen Lokal SCSS, RCS Meist nur eine

    Datei Zentral CVS, SVN, TFVC Ein Repository Viele Arbeitskopien Verteilt Git, Mercurial, Basar Viele Repositories Viele Arbeitskopien
  3. 6.

    Linux Kernel Entwicklung 1991 – 2002 Austausch archivierter Dateien &

    Patches 2002 – 2005 BitKeeper - proprietäres DVCS 2005 – heute Git - Eigenentwicklung Wie es zu Git kam
  4. 7.

    Geschwindigkeit Einfaches Design Einfaches Branchen & Mergen (tausende parallele Zweige)

    Vollständig verteilt Für Klein und Groß (Geschwindigkeit & Datenumfang) Ziele von Git
  5. 10.

    Zentrale Merkmale von Git Fast jede Operation ist lokal Schnell

    & Unabhängig Ausnahme: Interaktion mit Remote-Repository Git stellt Integrität sicher Aus Änderungen werden Checksummen (SHA-1) Checksummen werden referenziert Keine unentdeckten Änderungen an Dateien oder Verzeichnissen Sicherung beim Austausch über Netzwerk / E-Mail
  6. 13.
  7. 15.

    Die Kommandozeile Tab Completion git + <Tab> -> Befehle git

    log + <Tab> -> Parameter git log -- + <Tab> -> Optionen Hilfesystem git help -> Befehlsübersicht git log --help -> Hilfeseite für log (HTML, ManPage) git help log -> Hilfeseite für log (HTML, ManPage)
  8. 16.

    Konfiguration 3 Stufige Konfigurationsdateien System - /etc/gitconfig Benutzer - ~/.gitconfig

    Repository - .git/config Identität git config --global user.name „Andreas Richter“ git config --global user.email „ar@anrichter.net“ Aktuelle Einstellungen git config [--system | --global | --local] --list
  9. 17.

    Los gehts mkdir ~/Homepage cd ~/Homepage git init . vi

    REAMDE.md git status git add REAMDE.md git status git commit
  10. 18.

    Arbeit mit dem Repository Dateien oder Verzeichnisse ignorieren .gitignore Letzten

    Commit ändern (Vorsicht wenn bereits gepusht!) git commit --amend Historie durchsuchen git log git log --pretty=short --since=2.weeks (Nach dem Urlaub ) git log --pretty=short --author=“Author Name" --grep=“Kommentar"
  11. 19.

    Neuer Branch & checkout git checkout -b BranchName Merge git

    checkout master && git merge BranchName Konflikte lösen Manuell: Standard-Konfliktlösungsmarker Konfiguriertes Tool: git mergetool Zweig säubern / Zwischenspeichern git stash save | pop | list Branchen & Mergen
  12. 20.

    Rebase Lokalen Zweig auf neue Basis verschieben git checkout experiment

    git rebase master Historie ändern Commits nachträglich anpassen Commits zusammenfassen / löschen Achtung! Durch rebase entstehen neue Commits! Vorsicht, wenn bereits gepusht
  13. 21.

    Git auf dem Server Einfaches Self-Hosting per Dateifreigabe / SSH-Server

    git init --bare Erweitertes Self-Hosting mittels Software gitosis - https://github.com/tv42/gitosis gitolite – https://github.com/sitaramc/gitolite Externes Hosting & mehr BitBucket – https://bitbucket.org GitHub – https://github.com Visual Studio Online – http://www.visualstudio.com/
  14. 22.

    Tags Einfache Tags git tag v1.5 Kommentierte Tags git tag

    -a v1.7 -m „Version 1.7 getagged“ Tags veröffentlichen git push origin v1.7 git push origin --tags
  15. 23.
  16. 24.

    Verteiltes Arbeiten Branching-Modell gitflow - https://github.com/nvie/gitflow Fork / Pull Requests

    Projekt forken Eigene Änderungen einarbeiten Pull Request an Maintainer schicken Sich gut fühlen 
  17. 25.

    Tools Fehler finden git blame – zeigt pro Zeile letzte

    Änderung git bisect – Binäre Suche nach Commit mit Fehler Mehrere Repositories zusammenfassen git submodule git subtree Merge Automatisieren Hooks auf dem Client Hooks auf dem Server
  18. 26.

    Git Clients SourceTree - http://www.sourcetreeapp.com/ GitHub Windows - https://windows.github.com/ GitHub

    Mac - https://mac.github.com/ Git Extensions - https://code.google.com/p/gitextensions/ TortoiseGit - https://code.google.com/p/tortoisegit/ IDE-Integration WebStorm Visual Studio Eclipse