Eine kleine Einführung in GIT
Seit BitMover die Entwicklung des freien Clients eingestellt hat, wurde die Linux-Gemeinde dazu gezwungen, eine Alternative zu finden. Linus Torvalds hat sich dabei entschlossen ein eigenes System zu entwickeln, welches perfekt zur Entwicklungsart von Linux passt.
Das Ergebnis ist GIT (webgit) und das darauf aufgesetze Cogito. Obwohl Cogito einen einfachen Bedienungs-Layer für GIT bietet. Mag es für einige interessant sein, direkt mit GIT zu arbeiten.
Ich habe hier versucht einige Befehle zusammen zu stellen, die einem die Verwendung von GIT erleichtern sollen. Vielleicht hilft das einem Neuling sich einzuarbeiten, und ein paar Schwierigkeiten von Anfang an zu umgehen. Wenn nicht, so habe ich für mich eine kleine Referenz zusammengestellt...
Besonders sollte man darauf achten, dass zwar einige Scripte eine Datei .git/HEAD erwarten, diese Datei aber nicht automatisch durch die GIT-Scripte erstellt wird!
Auch erstellt GIT standardmäßig keine Historie der Commits. Auf die Historie der Commits muss man selber achten...
Die Befehle sind in der Reihenfolge aufgeführt, wie man sie wohl am häufigsten nutzten wird. Dieses bedeutet aber nicht, dass man sie genau in dieser Reihenfolge nutzten muss...
Auch stellt das gezeigt nur mein Ansatz dar. Andere mögen an die Sache vielleicht anders heran gehen.
Für Kommentare, Erweiterungen und Anregungen bin ich dankbar...
Erstellt ein neuen GIT-Cache im aktuellen Verzeichnis. Der GIT-Cache wird in dem Verzeichnis .git gespeichert.
Fügt alle Dateien des aktuellen Verzeichnisses in den GIT-Cache ein. Anschliessend muss noch ein neues Commit erzeugt werden. Unterverzeichnisse muss man extra angeben:
Erstellt ein neuen GIT-Tree und schreibt ein neues Commit. In .git/HEAD wird die Commit-ID des vorigen Commit erwartet (Parent). .git/HEAD wird dann anschliessend mit der aktuellen Commit-ID ersetzt. In der Datei changelog wird ein Kommentar zum aktuellen Commit erwartet.
Möchte mann den ersten Commit in einem git-Cache machen, muss man den -p-Parameter weglassen:
Zeigt den letzten Commit an.
Zeigt die Historie des aktuellen GIT-Caches an. Dazu muss man jedoch eine Historie angelegt haben. Es werden dann nur die Commit-Objekte angezeigt. Details werden dann mit
angezeigt. Wobei <commit-id> durch eine der angezeigten Commit-IDs ersetzt werden muß.
Lädt alle aktuellen Dateien aus dem GIT-Cache in das aktuellen Verzeichnisses.
Diese Einleitung betrachtet nur einen kleinen Teil der gegebenen Funktionalität. Es gibt noch einige weitere Befehle, deren genaue Nutzung oder Bedeutung ich noch nicht ergründen konnte.
Desweiteren war es mir nicht mögliche die aktuellen GIT-Releases auf einem Mac zu kompilieren. Um GIT auf meinen Mac zu bekommen, mußte ich erst ein Release auf meinen Linux-Server kompilieren, aktualisieren und dann auf meinen Mac kopieren.
Das Ergebnis ist GIT (webgit) und das darauf aufgesetze Cogito. Obwohl Cogito einen einfachen Bedienungs-Layer für GIT bietet. Mag es für einige interessant sein, direkt mit GIT zu arbeiten.
Ich habe hier versucht einige Befehle zusammen zu stellen, die einem die Verwendung von GIT erleichtern sollen. Vielleicht hilft das einem Neuling sich einzuarbeiten, und ein paar Schwierigkeiten von Anfang an zu umgehen. Wenn nicht, so habe ich für mich eine kleine Referenz zusammengestellt...
Besonders sollte man darauf achten, dass zwar einige Scripte eine Datei .git/HEAD erwarten, diese Datei aber nicht automatisch durch die GIT-Scripte erstellt wird!
Auch erstellt GIT standardmäßig keine Historie der Commits. Auf die Historie der Commits muss man selber achten...
Die Befehle sind in der Reihenfolge aufgeführt, wie man sie wohl am häufigsten nutzten wird. Dieses bedeutet aber nicht, dass man sie genau in dieser Reihenfolge nutzten muss...
Auch stellt das gezeigt nur mein Ansatz dar. Andere mögen an die Sache vielleicht anders heran gehen.
Für Kommentare, Erweiterungen und Anregungen bin ich dankbar...
git-init-dbErstellt ein neuen GIT-Cache im aktuellen Verzeichnis. Der GIT-Cache wird in dem Verzeichnis .git gespeichert.
git-update-cache --add *Fügt alle Dateien des aktuellen Verzeichnisses in den GIT-Cache ein. Anschliessend muss noch ein neues Commit erzeugt werden. Unterverzeichnisse muss man extra angeben:
git-update-cache --add * lib/*git-commit-tree `git-write-tree` -p `cat .git/HEAD` <changelog >.git/HEADErstellt ein neuen GIT-Tree und schreibt ein neues Commit. In .git/HEAD wird die Commit-ID des vorigen Commit erwartet (Parent). .git/HEAD wird dann anschliessend mit der aktuellen Commit-ID ersetzt. In der Datei changelog wird ein Kommentar zum aktuellen Commit erwartet.
Möchte mann den ersten Commit in einem git-Cache machen, muss man den -p-Parameter weglassen:
git-commit-tree `git-write-tree` <changelog >.git/HEADgit-cat-file commit `cat .git/HEAD`Zeigt den letzten Commit an.
git-rev-tree `cat .git/HEAD`Zeigt die Historie des aktuellen GIT-Caches an. Dazu muss man jedoch eine Historie angelegt haben. Es werden dann nur die Commit-Objekte angezeigt. Details werden dann mit
git-cat-file commit <commit-id>angezeigt. Wobei <commit-id> durch eine der angezeigten Commit-IDs ersetzt werden muß.
git-checkout-cache -aLädt alle aktuellen Dateien aus dem GIT-Cache in das aktuellen Verzeichnisses.
Diese Einleitung betrachtet nur einen kleinen Teil der gegebenen Funktionalität. Es gibt noch einige weitere Befehle, deren genaue Nutzung oder Bedeutung ich noch nicht ergründen konnte.
Desweiteren war es mir nicht mögliche die aktuellen GIT-Releases auf einem Mac zu kompilieren. Um GIT auf meinen Mac zu bekommen, mußte ich erst ein Release auf meinen Linux-Server kompilieren, aktualisieren und dann auf meinen Mac kopieren.
Hallo, ich bin Sebastian!