GIT - Start

Hier schon einmal - als Schnellstart - meine Notizen zur kurzfristigen, privaten Nutzung von GIT, einem Versionskontrollsystem.

Was kann GIT?

Wie auf der Wikipedia-Seite von GIT ersichtlich, handelt es sich um ein verteiltes Versionsverwaltungssystem, mit dem speziell ich, meine Texte versioniere.

Texte können Quelltexte, aber auch diese mit Jekyll generierten Blogposts, sein. Gerade bei dieser Art von Texten kann es sehr hilfreich sein, auf Vorgängerversionen zurückgreifen zu können, um per Diff zu erkennen, ab wann man was, und unter Umständen dann auch warum, falsch gemacht hat.

Download

Hier kann der Download von der Communityseite passend zum eigenen Betriebssystem ausgewählt werden.

Für Windows gibt es hier zusätzlich ein Kontextmenütool für den Dateiexplorer, wobei GIT vollständig über die Kommandozeile bedient und genutzt werden kann.

Repository erzeugen

  • in das Projektverzeichnis wechseln
  • dort git init aufrufen

Dateien und geänderte Dateien zum Repository hinzufügen

  • evtl. bereits im Projektverzeichnis vorhandene oder jeweils neu erzeugte oder geänderte Dateien zum Reposititory mit git add [Dateiname] oder git add --all hinzufügen

Änderungen ansehen (diff)

  • git diff [Dateiname]
  • oder unter Windows mit Tortoise mittels Rechtsklick und Auswahl des Menüpunktes "diff"

Änderungshistorie (Log) ansehen

  • mittels git log die Historie ansehen und den Hash der Commits herausfinden
  • mit git log --all sieht man alle Veränderungen
  • und mit git log --all --graph auch die branchspezifischen Änderungen
  • mit git log --all --graph --oneline bekommt man eine übersichtlichere Ansicht, die aber weniger Details enthält

Reset zum letzten Commit

  • wenn man mal einen groben Fehler begangen hat, kann man mit dem Befehl git reset --hard HEAD den Zustand des letzten Commits wiederherstellen

Reset zu einem bestimmten Commit

  • git checkout [hash] diesen Wiederherstellen. Der Hashwert muss nicht vollständig eingegeben werden. Die ersten n Zeichen, die ihn eindeutig machen, reichen bereits aus.

Branch bzw. Version erzeugen

  • git checkout -b [BranchnameOhneLeerzeichen]
  • Wechsel mit git checkout master bzw. git checkout [Branchname]

Branches in den master zusammenfügen (mergen)

  • git merge [Branchname] für den ersten merge
  • git merge [Branchname] den dort startenden Editor mit einem Kommentar versehen und dann beenden. Dies ist ein sogenannter merge commit.

Stash (temporärer Zwischenspeicher)

  • git add --all und dann git stash. Setzt wie ein hard reset alles auf den letzten commit zurück.
  • zu guter Letzt git stash pop holt die zwischengesicherten Änderungen zurück, die dann - nach Bearbeitung - geadded und commited werden können

Git clone von einem Remoteserver

  • git clone [Link zum Repository]
  • git pull hole den aktuellen Zustand vom Server
  • git push kopiere geänderte Dateien in das entfernte Repository

Dateien aus Repository löschen

  • git rm [Dateiname]
  • anschließend git commit -m "Datei [Dateiname] gelöscht"
  • Dateiname ist dann für zukünftige Versionen gelöscht. In der Historie verbleibt sie natürlich