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]
odergit 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 mergegit 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 danngit 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 Servergit 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