Nützliche Git-Kommandos


Nach und nach gewöhne ich mich an Git, so dass das Arbeiten damit angenehm wird. Noch angenehmer wird es mit ein paar nicht ganz so grundlegenden Befehlen und Einstellungen.

git config core.filemode false
Änderungen an Dateiberechtigungen ignorieren.

In dem Zusammenhang auch nützlich ist:

find . -type d -exec sudo chmod 755 {} +
Ich habe, unwissend wie ich frischer Linux-User bin, nämlich einfach 755 auf alles gesetzt, um Verzeichnisse beschreibbar bzw. lesbar zu machen - dadurch änderten sich auch die Berechtigungen der Dateien in meinen Git-Verzeichnissen. Das ist eigentlich Blödsinn. Während nämlich bei Verzeichnissen 7 (rwx) als Berechtigung notwendig ist, um sie nicht nur zu lesen (r), sondern auch zu verwenden (x), ist das bei Dateien meistens nicht erforderlich - es sei denn, sie werden tatsächlich in der Konsole als Skript gestartet.

Korrigiert habe ich das dann mit chmod 644 -R . und dem obigen Befehl, also erst 644 auf alles und dann 755 auf alle Verzeichnisse. Noch schöner wäre es gewesen, direkt 644 nur auf Dateien zu setzen (type f für find)...

git checkout --
Eine Datei zurücksetzen, also Änderungen daran verwerfen. Wenn datei durch ./* ersetzt wird, kann man damit auch sehr einfach und ohne Nebenwirkungen unerwünschte größere Änderungen verwerfen, z.B. wenn man git pull auf einem falschen Branch ausgeführt hat.

git commit --amend
Den letzten Commit abändern, zum Beispiel die Nachricht ändern oder weitere Dateien hinzufügen oder Dateien wieder rausnehmen. Einfach so tun, als würde man die Änderungen mit einem neuen Commit durchführen, sie wird dann mit dem vorherigen zusammengefügt.

git reset --soft HEAD^
Den letzten Commit wieder auflösen. Danach sieht das Verzeichnis wieder so aus wie vor dem Commit: Alle Änderungen, die in dem Commit enthalten waren, sind nun wieder "unstaged" - nicht im Repo niedergeschrieben.