GIT – Git
GIT Ein Git-Repository wird wie ein Ordner durchsucht: die geänderten Dateien, die Branches, der Verlauf.
Ein Repository öffnen
Die Schaltfläche GIT der Leiste springt zum Favoritenprojekt; ihr Rechtsklick liefert die Liste: die bekannten Repositories, „Commit…“, „Verlauf…“, die Branches, „Stash…“ und „Stashes“, „Tags…“, „Remotes“. Ein Ordner auf dem Datenträger, der noch kein Repository ist, bietet dort „Repository hier klonen…“ an. Die Projekte fügen sich beim Betreten von selbst hinzu, und ein Projekt, dessen Ordner verschwunden ist, wird vergessen – außer wenn es sein Datenträger ist, der fehlt: Ein abgezogener Stick lässt nichts vergessen.
Der Zustand eines Ordners
Jede Zeile trägt ihre Farbe: in Konflikt, nicht verfolgt, geändert, vorgemerkt, ignoriert. Eine Datei wird von git auf zwei Achsen beschrieben – dem Index und der Arbeitskopie – und eine Zeile hat nicht die Mittel, beide zu zeigen: Was noch zu tun bleibt, entscheidet über die Farbe. Die Pfadleiste nennt den aktuellen Branch.
Vormerken und committen
„Commit…“ öffnet die Ansicht der Änderungen: eine Datei pro Zeile, die Spalte Verfolgt sagt, was git darüber weiß. Man bezeichnet die Zeilen wie überall sonst – Klick, Strg+Klick, Umschalt+Klick –, schreibt unten die Nachricht, und Committen startet mit dem, was ausgewählt ist. Nichts ausgewählt, nichts geht raus: Die Schaltfläche sagt es.
Die Schaltfläche Nicht verfolgt in der Commit-Leiste blendet aus, was git nicht verfolgt: Ein Ordner voller Wegwerfdateien verdeckt nicht mehr die zwei, die man committen will, und Ctrl+A nimmt sie nicht mehr mit. Abgewählt zeigt sie, wie viele sie ausblendet.

Unterschiede ansehen
„Unterschiede anzeigen“ öffnet den Diff Block für Block, zwischen der Arbeitskopie, dem Index (vorgemerkt) und einem Commit – vorher und nachher sind dort benannt. Eine Binärdatei sagt das lieber, als Datenmüll zu zeigen.
Die Handgriffe
- Committen mit seiner Nachricht.
- Ignorieren: Die Datei wandert in die
.gitignore. - Rollback: Das Dialogfeld sagt, wie viele neue Dateien vom Datenträger verschwinden und wie viele ihren Zustand aus dem Repository zurückerhalten. Die nicht committete Arbeit geht verloren – das steht dort.
- Kopieren › Zwischenablage: Eine Zeile der Änderungen ist eine Datei auf dem Datenträger und wird als solche kopiert – um sie anderswo einzufügen, auch außerhalb von Meneaufile. Weder Ausschneiden noch Einfügen: Die Liste wird von git zusammengesetzt, man nimmt keine Zeile heraus und schreibt nichts hinein.
- Am Speicherort öffnen: Die Datei liegt woanders als ihre Zeile – diese lebt in der Liste, sie in der Arbeitskopie, dort, wo man sie bearbeitet. Dorthin führt der Eintrag.
Die Branches und der Verlauf
Einen Branch anlegen, darauf wechseln, zusammenführen – der Eintrag trägt den Namen des Branches und antwortet nichts zusammenzuführen: bereits aktuell oder Zusammenführung abgebrochen: Dateien sind in Konflikt. „Verlauf…“ listet die Commits auf: ihren kurzen Hash, ihren Betreff, ihren Autor, ihr Datum. Die linke Randspalte zeichnet den Graphen, jede Zeile auf ihrer eigenen, und ein Merge zieht seinen Strich zur Nachbarspalte. Ein Doppelklick öffnet die Details eines Commits: seine vollständige Nachricht und die Dateien, die er berührt hat.

Der Merge-Request-Baum
Merge-Request-Baum… im Menü der GIT-Schaltfläche zeichnet die offenen MRs des GitLab-Projekts, auf das das Remote zeigt. Jeder steht unter dem Branch, von dem er ausgeht, um eine Stufe eingerückt wie ein Inhaltsverzeichnis: Die Stufe gibt die Reihenfolge der Freigabe an, und ein Klick auf eine Karte öffnet den MR im Browser.
- Die Herkunft wird aus den Commits gelesen. Ein von einem anderen abgezweigter MR steht unter diesem, auch wenn beide auf
mainzielen: „nach !28“ sagt, welcher zuerst freizugeben ist, und „Ziel main“ warnt, dass er noch aufmainzielt – ihn zuerst zu mergen, nähme die Commits des anderen mit. - Die Abzeichen zeigen den Zustand laut GitLab: Entwurf, Konflikte, Rebase nötig, Freigabe nötig, offene Diskussionen, Pipeline läuft, bereit.
- Die Schaltfläche Checkout oben rechts auf jeder Karte wechselt die Arbeitskopie auf den Branch des MR, um ihn vor der Freigabe zu testen oder zu prüfen. Der Branch wird zuerst vom Server geholt; laufende Arbeit kann wie bei jedem Branch-Wechsel zurückgestellt werden. Ein Häkchen markiert den Branch, auf dem man bereits ist.
- Das persönliche Zugriffstoken mit dem Recht
read_apiwird in GitLab erstellt: User settings › Access › Personal access tokens › Generate token. Meneaufile fragt einmal danach und legt es im Tresor in einem eigenen Eintrag ab; ein NET-Eintrag mit dem Kontopasswort wird nicht als Token genommen.

main, wo man ist.Mit dem Remote-Repository austauschen
„Pull (holen)“ und „Push (senden)“, mit der Zahl der betroffenen Commits neben der Beschriftung – die Null wird nicht geschrieben. Ein Branch, der gegenüber noch nicht existiert, geht mit seinem Upstream hinaus. Die Remotes werden im selben Menü deklariert und entfernt. Verlangt der Server einen Nachweis, fragt Meneaufile seinerseits danach, statt wortlos hängen zu bleiben.
Beiseitelegen
„Stash…“ legt die laufende Arbeit beiseite, ohne sie zu committen, mit optionaler Beschreibung; „Stashes“ – Beiseitegelegte Arbeit – listet auf, was wartet, und von dort nimmt man wieder auf oder verwirft. „Tags…“ setzt und entfernt Tags auf dieselbe Weise.
Wer diese Zeile geschrieben hat
„Zeilenherkunft“ im Menü einer Datei ordnet jede Zeile ihrem Commit und ihrem Autor zu. Das ist die Frage, die man sich vor einer überraschenden Zeile stellt, und eine Liste von Commits beantwortet sie nicht.
Die Konflikte
Eine Datei in Konflikt öffnet sich mit ihren Fassungen: der gemeinsamen Fassung, unserer, ihrer und dem Ergebnis, das man aufbaut. „Alles übernehmen“ übernimmt eine ganze Seite, „Auflösen“ speichert – und die Datei verlässt die Kategorie in Konflikt.
Klonen
Aus einem Ordner: die Adresse (https://… oder git@host:org/repo.git), der Name des anzulegenden Ordners und ein vollständiger oder flacher Verlauf – die letzten N Commits.
Die Bundles
Eine .bundle-Datei ist ein Git-Repository, verpackt in eine einzige Datei: So nimmt man ein Projekt auf einem Stick mit oder gibt es jemandem weiter, ohne Server. Ein Doppelklick zeigt, was sie enthält – ihre Branches, ihre Tags –, und Hier klonen… macht daraus ein gewöhnliches Repository, gleich daneben, ohne Netzwerk. In einem Repository verpackt Bundle erstellen… im Menü von GIT das ganze Repository in den Ordner der anderen Ansicht.
Wenn git fehlt
Meneaufile ruft das git des Systems auf. Fehlt es oder liegt es nicht im PATH, sagt es das, statt ohne Grund zu scheitern.
Meneaufile-Handbuch, auf Deutsch.