Erlaubt TortoiseGit selektives Staging, wie Git-GUI?

Lesezeit: 7 Minuten

Benutzer-Avatar
Brent.Longborough

Diese Frage:

Können Sie mit TortoiseGit mit dem Index-/Staging-Bereich interagieren?

vertritt die Position, dass die Hauptfunktion von TortoiseGit ist nicht um die Notwendigkeit der Git-Befehlszeile zu beseitigen, und im Allgemeinen stimme ich zu.

Git-GUI hat jedoch eine Funktion, die ich häufig verwende (vielleicht um einen schlechten Arbeitsablauf auszugleichen): die Fähigkeit, Hunks oder Zeilen aus dem aktuellen Patch selektiv zu inszenieren oder aufzuheben, um eine Reihe von verstreuten Änderungen in kohärente Änderungssätze in mehreren Commits aufzuteilen .

Die Kommandozeilen-Alternative (zumindest für mich) ist etwas umständlich, daher würde ich im Idealfall gerne dasselbe selektive Commit in TortoiseGit durchführen.

Bisher habe ich keinen Weg gefunden, dies zu tun, und ich vermute aufgrund der Antwort auf die andere Frage, dass dies nicht möglich ist. Kann das bitte jemand bestätigen?

  • Der einzige Client unter Windows, der volle Unterstützung für selektives Staging in der GUI bietet, den ich bisher gesehen habe, ist SmartGit. Somit hat es im Vergleich zu TortoiseGit oder GitExtensions auch schwache Seiten.

    – Iwan Danilow

    7. August 2011 um 9:53 Uhr


  • @Ivan Danilov: Danke, SmartGit ist Liebe auf den ersten Blick für alltägliche Dinge. Wenn Sie das zu einer Antwort machen möchten, wird es sehr gut konkurrieren …

    – Brent.Longborough

    7. August 2011 um 12:05 Uhr

  • Ich habe geantwortet und meinen sehr prägnanten Kommentar etwas erweitert, damit er als echte Antwort gezählt wird 🙂

    – Iwan Danilow

    7. August 2011 um 16:44 Uhr

  • Git Gui unterstützt auch selektives Staging und Commit.

    – Do 00 mÄ s

    11. Januar 2013 um 14:13 Uhr

  • @ThomasS: Ja, das tut es. Wenn es unter Windows nur nicht so oft in einen hängenden Zustand geraten würde, dann wäre ich damit zufrieden, es einfach zu verwenden. So wie es aussieht, möchte ich etwas, das unter Windows zuverlässiger funktioniert. (Ich vermute, das ist eine Art MSYS[2] oder MinGW (die Bibliothek) Glitch, weil ich mich nicht erinnern kann, dass dies jemals unter Linux passiert ist, aber es passiert mir die ganze Zeit hier unter Windows. Manchmal auch mit gitk, also ist es wahrscheinlich ein Fehler, den TCL/wish.exe kitzelt, was eher passiert, je mehr Unterprozesse ein TCL-Programm versucht, deren Ausgabe zu lesen.)

    – SamB

    6. November 2015 um 2:58 Uhr

Benutzer-Avatar
Duncan Smart

Ja, das tut es jetzt: siehe Ausgabe 222 – Es verfolgt den gleichen Ansatz wie TortoiseSVN, wo Sie:

  • Klicken Sie mit der rechten Maustaste auf die Datei und wählen Sie “Nach Commit wiederherstellen”.
  • TSVN erstellt eine Kopie der Datei außerhalb der Arbeitskopie, die Datei wird im > Commit-Dialog anders angezeigt (vielleicht ein Overlay-Icon oder eine andere Farbe)
  • Der Benutzer kann auf die Datei doppelklicken, um sie in TMerge oder einem anderen Diff-Tool zu öffnen und alle Änderungen rückgängig zu machen, die nicht übernommen werden sollen, und diese Änderungen dann speichern
  • verpflichten
  • Nach Abschluss des Commit wird die Kopie der Originaldatei zurück verschoben

(Aus TSVN-Ausgabe 68)

  • Duncan, vielen Dank dafür. Ich bin jetzt sehr in SmartGit verliebt, aber dem gesamten TSVN-Team sage ich: Lassen Sie sich nicht entmutigen, machen Sie mit der großartigen Arbeit weiter. Obwohl Sie wirklich spektakuläre Konkurrenz haben, sind Sie immer noch erstaunlich.

    – Brent.Longborough

    17. Februar 2012 um 12:50 Uhr

  • Es ist schön zu sehen, wie das TortoiseGit-Team einen guten, GUI-orientierten Weg entwickelt, dies zu tun, anstatt die schlampige GUI-over-a-Console-App, wie die meisten anderen Git-GUIs Dinge tun. Wenn sie jetzt nur das Gleiche für interaktives Rebase tun würden …

    – BlueRaja – Danny Pflughöft

    12. Dezember 2013 um 21:40 Uhr

  • Dies ist jedoch keine selektive Inszenierung. Es ist eine Problemumgehung. Selektive Inszenierung bedeutet, dass Sie nach Belieben entscheiden können ohne ein Commit zu erstellen was du willst und was du nicht willst. Dies nicht. Es ist nicht richtig zu sagen, dass es Unterstützung für selektives Staging in TortoiseGit gibt.

    – Len

    17. Januar 2018 um 1:30 Uhr


Der einzige Client unter Windows, der volle Unterstützung für selektives Staging in der GUI bietet, den ich bisher gesehen habe, ist SmartGit.

Somit hat es im Vergleich zu TortoiseGit oder GitExtensions auch schwache Seiten.

Für mich sind die wichtigsten Showstopper in SmartGit:

  1. Unfähigkeit, zwei Revisionen zu vergleichen. Sie konnten nur den Unterschied zwischen einem und seinem Elternteil sehen (TortoiseGit kann das).
  2. Unfähigkeit (naja, es ist etwas seltsam, es ist möglich, dass ich den Weg nicht gefunden habe), das Protokoll auf einen Ordner zu beschränken, wenn ich nicht an allem interessiert bin (TortoiseGit kann).
  3. Integration mit VisualStudio (etwas subjektiv, aber GitEx hat es und es ist sehr praktisch)

Ich erinnere mich, dass es noch etwas anderes gab, aber wenn ich die letzte Version von SmartGit jetzt auswerte, kann ich es nicht finden. Entweder wurde es behoben/hinzugefügt oder ich habe einfach vergessen, was ich damals nicht machen kann.

Auf jeden Fall verwende ich sowohl GitEx als auch TortoiseGit für einige Dinge und für alles andere ist die Konsole das beste Werkzeug.

  • Vielen Dank für die Antwort und vor allem dafür, dass Sie mir SmartGit vorgestellt haben – ich habe mich bereits in es verliebt. Natürlich sind die von Ihnen erwähnten Einschränkungen gültig, aber da sie keinen wesentlichen Teil meines Arbeitsablaufs ausmachen, ist das in Ordnung. (Die Kilometerstände anderer können natürlich variieren.)

    – Brent.Longborough

    7. August 2011 um 19:07 Uhr

  • Nur fürs Protokoll, meine aktuelle Version von SmartGit (2.1.7:2012-01-23) tut ermöglichen es Ihnen, das Protokoll für einen bestimmten einzelnen Ordner (Inhalt) oder eine einzelne bestimmte Datei sowie den gesamten Baum anzuzeigen.

    – Brent.Longborough

    17. Februar 2012 um 12:47 Uhr

  • Sowohl TortoiseGit als auch Git-Erweiterungen unterstützen seit März 2012 die Arbeit mit Hunks. Ich denke, dass die Antwort von Duncan Smart als Antwort auf diese Frage markiert werden sollte (egal wie gut SmartGit ist).

    – Borek Bernhard

    7. März 2012 um 13:53 Uhr

  • @Borek: Ja, sie haben die Dinge bereits aufgeholt, gutes Update.

    – Iwan Danilow

    7. März 2012 um 19:10 Uhr

  • Gruß an Quellbaum, als ein weiterer Windows-Client, der selektives Staging in einem sehr intuitiven Format unterstützt. Ich verwende TortoiseGit für fast alles und starte Sourcetree, wenn ich Staging-Funktionen verwenden möchte.

    – BTownTKD

    5. Juni 2016 um 16:04 Uhr


Quellbaum (https://www.sourcetreeapp.com/) hat eine sehr intuitive GUI für selektives Staging. Es ist so konzipiert, dass es sich in BitBucket integrieren lässt (schließlich stammt es von derselben Firma), kann aber problemlos mit jedem Git-Repository arbeiten.

Parallel verwende ich TortoiseGit immer noch, vor allem wegen einiger netter Features wie dem Revisionsgraphen.

  • In den vier Jahren, seit ich diese Frage gestellt habe, habe ich mich erheblich weiterentwickelt, bin von TortoiseGit zu Syntevo SmartGit übergegangen und schließlich bei SourceTree gelandet, das ich für fast alles brillant finde (einschließlich nicht nur BB, sondern auch GitHub). Die 0,5 %, die ich in SourceTree nicht machen kann, mache ich auf der Kommandozeile.

    – Brent.Longborough

    22. Januar 2016 um 17:32 Uhr


  • Sourcetree ist großartig, aber es ist wirklich schade, dass sie kein Linux unterstützen

    – Renaud

    27. Januar 2020 um 11:46 Uhr

Vom Aussehen her Ausgabe 222das “add -p“Funktion ist noch nicht implementiert.

Könnten Sie Unterstützung für das teilweise Festschreiben einer Datei hinzufügen? (git add -p).
Ich verstehe, dass die Funktionsweise von TortoiseGit etwas anders ist als die normale “git index“, aber trotzdem hätte ich gerne Unterstützung dafür in irgendeiner Weise.

Ich würde gerne nur ein paar Änderungen an einer Datei vornehmen.
Übergeben Sie zum Beispiel nur eine einzelne Zeile der Datei und lassen Sie den Rest in der Arbeitskopie.

Benutzer-Avatar
ollydbg23

Es gibt die Pull-Anforderung, die diese Funktion ab dem Jahr 2020 implementiert, ich hoffe, sie wird so schnell wie möglich zusammengeführt.

https://github.com/TortoiseGit/TortoiseGit/pull/233

  • Außerdem ist eine Diskussion unter geöffnet gitlab.com/tortoisegit/tortoisegit/-/issues/2299zeigt aber schließlich auf die gleiche PR.

    – Nilsandrey

    23. Februar 2021 um 20:53 Uhr

  • Es sieht so aus, als wäre es zusammengeführt. Warten auf eine Neuerscheinung…

    – Alex

    5. August 2021 um 21:37 Uhr

  • Ja, ich warte auch auf eine Neuerscheinung.

    – ollydbg23

    5. August 2021 um 23:09 Uhr

  • Vielleicht kannst du es hier einmal versuchen: download.tortoisegit.org/tgit/previewsaber ich bin mir nicht sicher, ob die neueste Vorschauversion vom 25.07.2021 solche zusammengeführten Commits enthält.

    – ollydbg23

    5. August 2021 um 23:12 Uhr

  • Außerdem ist eine Diskussion unter geöffnet gitlab.com/tortoisegit/tortoisegit/-/issues/2299zeigt aber schließlich auf die gleiche PR.

    – Nilsandrey

    23. Februar 2021 um 20:53 Uhr

  • Es sieht so aus, als wäre es zusammengeführt. Warten auf eine Neuerscheinung…

    – Alex

    5. August 2021 um 21:37 Uhr

  • Ja, ich warte auch auf eine Neuerscheinung.

    – ollydbg23

    5. August 2021 um 23:09 Uhr

  • Vielleicht kannst du es hier einmal versuchen: download.tortoisegit.org/tgit/previewsaber ich bin mir nicht sicher, ob die neueste Vorschauversion vom 25.07.2021 solche zusammengeführten Commits enthält.

    – ollydbg23

    5. August 2021 um 23:12 Uhr

1273120cookie-checkErlaubt TortoiseGit selektives Staging, wie Git-GUI?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy