Git-GUI für Linux, die wie TortoiseGit ist

Ich möchte ein Tortoisegit-ähnliches Programm in Linux, das Folgendes kann:

  • Öffnet einen Dialog, wenn ich mit der rechten Maustaste auf einen Ordner oder eine Datei in einer Baumansicht des Dateisystems klicke und im resultierenden Kontextmenü einen Menüpunkt auswähle. Wenn ich einen Commit-Dialog öffne, möchte ich eine Liste aller Änderungen und aller nicht bereitgestellten Dateien sehen. Diese sollten bezüglich der Änderungszeit in absteigender Reihenfolge sortierbar sein. Jede Datei sollte ein Kontrollkästchen haben, damit ich auswählen kann, welche Datei in einen Commit eingeschlossen werden soll. Wenn ich auf eine Datei doppelklicke, erhalte ich die Diff-Ansicht der Änderungen für diese Datei.
  • Diffs-Ansichten von Textdateien bestehen aus einer Seite-an-Seite-Ansicht mit "ihren" und "meinen", mit einer vollständigen Auflistung auf jeder Seite, die Linien markiert, die sowohl entfernt als auch hinzugefügt werden. Ein "Gutter" zwischen den beiden Textansichten visualisiert, welche Zeilen in der linken Ansicht Zeilen in der rechten Ansicht entsprechen. Wenn es einen Konflikt gibt, zeigt der Bundsteg das Markieren eines Teils als rot an. Die Textansichten scrollen nach unten zur ersten Änderung, wenn die Diff-Ansicht erscheint. Ein Tastendruck bringt den Benutzer zum nächsten Diff. In dieser Ansicht kann der Benutzer entweder ein Hinzufügen oder Entfernen rückgängig machen, indem er auf Bereiche klickt, die als Änderungen markiert sind. Text kann auch in der rechten Ansicht (meine) frei eingegeben werden.
  • Habe "restore after commit", was bedeutet, dass ich einen Schnappschuss einer Datei machen kann, indem ich sie im Commit-Dialog als "restore after commit" markiere. Dann klicke ich in der Diff-Ansicht auf einige geänderte Bereiche, um einige der Änderungen rückgängig zu machen, aber nach dem Festschreiben wird die Datei mit dem Inhalt des Schnappschusses wiederhergestellt, sodass ich beim nächsten Festschreiben der Datei die vorgenommenen Änderungen festschreiben kann das vorherige Mal nicht begehen.

Hinweis: Ich habe Gitkraken schon einmal ausprobiert, und einer der Nachteile hat Konten. Warum sollte ich ein Git-Kundenkonto haben wollen? Die Visualisierung ist wirklich cool, aber es gibt keine Dateisystemansichten, es gibt keine Kontrollkästchen für geänderte Dateien, es scheint nur nach Dateinamen zu sortieren, nicht nach Änderungszeit, die Diff-Ansicht verwendet Diff-Syntax anstelle einer Side-by-Side-Ansicht. Ich habe keine "restore after commit"-Funktion gefunden.

Es gibt ein weiteres unterschätztes Feature von TortoiseGit, das (AFAIK) nichts anderes kann, nämlich das Anzeigen des Commit-Verlaufs eines Zweigs, der derzeit nicht ausgecheckt ist. Ich weiß, ich könnte das Repo erneut klonen und auschecken und dann ein Protokoll in einem Verzeichnis und ein anderes Protokoll in einem anderen Verzeichnis öffnen, aber es ist sehr praktisch, einfach auf einen anderen Zweig klicken zu können, um etwas anzusehen, ohne das ersetzen zu müssen Zweig, in dem ich mich befinde, oder klonen Sie ein neues Verzeichnis.

Antworten (1)

Neben der Beherrschung der Git-Bash-CLI, wie von Reddit vorgeschlagen , ist GitKraken (GK) wahrscheinlich einen Blick wert.

Ich persönlich bin mit ein paar Erweiterungen ( 1 , 2 , 3 ) zu Visual Studio Code gewechselt. GK ist für mich einfach ein Overkill, da ich hauptsächlich nur meine eigenen kleinen Projekte verwalte. Als Referenz arbeite ich etwa 75 % der Zeit mit Windows und 25 % mit Manjaro, daher kann meine Antwort etwas voreingenommen sein.

Ich habe Gitkraken schon einmal ausprobiert, und einer der Nachteile hat Konten. Warum sollte ich ein Git-Kundenkonto haben wollen? Die Visualisierung ist wirklich cool, aber es gibt keine Dateisystemansichten, es gibt keine Kontrollkästchen für geänderte Dateien, es scheint nur nach Dateinamen zu sortieren, nicht nach Änderungszeit, die Diff-Ansicht verwendet Diff-Syntax anstelle einer Side-by-Side-Ansicht. Ich habe keine "restore after commit"-Funktion gefunden.
@AndersLindén stimmt, ihre Forderung nach einem Konto ist lächerlich, obwohl sie auch GitHub-Konten akzeptieren (was jedoch andere Fragen aufwirft). Leider kenne ich außer GK keinen anderen Client für Linux, der in der Funktionalität TortoiseGit näher kommt. Es scheint nur so, als ob die Leute mit der Git-Bash-Funktionalität zufrieden sind.
Ich kenne keinen raffinierten Weg, um die CLI zu verwenden, um 1) Änderungen zwischen verschiedenen Zweigen schnell zu vergleichen (VSCode kann dies auch nicht wirklich tun, und keine Benutzeroberfläche, die ich gesehen habe, außer TG), 2) einen Commit lokalisieren unter Zehntausenden (möglicherweise vor Jahren) schnell und bekomme einen Unterschied zwischen zwei Commits, die hundert Commits auseinander liegen könnten (ich müsste meine Konsolenschriftart auf 8 oder so einstellen). Wie beim OP mag ich die Symboländerungen sehr Im Explorer ist es schön, Ordner zu durchsuchen und nach versehentlich hinzugefügten Dateien / geänderten Dateien zu suchen. Bequemer als git status.
Auch nicht alles in der CLI ist wunderbar, git checkout -b <branch name> origin/<branch name>ist ein bisschen klobiges CLI-Design, git checkout <some file>Änderungen rückgängig zu machen ist für mich nicht so gut wie die Verwendung einer Benutzeroberfläche, selbst wenn ich die Tab-Vervollständigung verwende und ich sehr schnell tippe, besonders wenn ich eine Reihe von Dateien wiederherstellen möchte . Ich muss auch jedes Mal den Befehl zum Ändern der Remote-URL nachschlagen, es ist git remote set-url origin <new url>. Ich denke immer, es ist git set originoder git remote set originoder so eine andere Variante.
GitKraken will jetzt viel Geld für alles andere als öffentliche GitHub-Projekte, sogar für lokale Projekte :(