Gibt es eine Git-Blamage-GUI ähnlich wie bzr qannotate?

Lesezeit: 6 Minuten

Benutzer-Avatar
bialis

Als Ehemaliger bzr Benutzer und Anfänger zu git Ich versuche, ein gutes GUI-Tool für zu finden git blame ähnlich zu bzr qannotate. Letzteres hat 2 Hauptansichten:

  1. Dateiinhaltsbetrachter mit kurzen Anmerkungsinformationen (wer, in welcher Revision die Zeile geändert hat) + Einfärbung des Hintergrunds basierend auf Committer-ID und Alter der Änderung.
  2. Dateiprotokoll-Viewer: Wenn ich auf die Zeile im Dateiinhalt klicke, kann ich die Revision sehen, wann diese Zeile geändert wurde, und alle Protokollinformationen darüber.

Bildschirmfoto:
Geben Sie hier die Bildbeschreibung ein

Ich sehe, dass XCode IDE so etwas eingebaut hat, obwohl es sich im Editorfenster befindet und daher nicht sehr praktisch ist.

Bisher habe ich GitX 0.7.1 und GitHub für Mac ausprobiert – beide haben überhaupt keine “Schuld”.

Ich habe gerade SourceTree für Mac überprüft, und es hat zwar Schuldzuweisungsunterstützung, aber es ist eher rudimentär und zeigt mir fast dasselbe wie die Befehlszeile git blame, obwohl ich auf die Zeile doppelklicken kann, um die entsprechende Überarbeitung und Änderungen in einem anderen Fenster anzuzeigen. Das ist immer noch nicht so gut wie bzr qannotate.

Gibt es andere GUI-Tools, die ich verwenden kann?

  • Hallo Bialix! Es ist lange her! Leider glaube ich nicht, dass es etwas so Gutes wie QBzr für Git gibt. 🙁 Ihr hattet eine Ausgezeichnet Werkzeugset. Ich sehne mich ständig nach dem Äquivalent für Git.

    – John Szakmeister

    21. November 2012 um 11:55 Uhr

  • Sie können sich auch Tower ansehen, obwohl es teuer ist.

    – Millielch

    21. November 2012 um 23:05 Uhr


Benutzer-Avatar
mgarciaisaia

tig FTW!

Drücken t Sie erhalten die Baumansicht. Dann drücken B zeigt dir die git blame der markierten Datei.

Benutzer-Avatar
Franken

Der einfachere Weg könnte sein git gui blame <arguments>. Sie können verwenden git gui --help für weitere Informationen zu den Argumenten. Hier die offizielle Quelle

git gui hat diese Funktionalität, aber es ist nicht annähernd so ausgefeilt. Gehen Sie zu “Repository” -> “Browse master’s files” (oder “Browse Branch files” für einen anderen Branch) -> doppelklicken Sie auf einen Dateinamen. Es ist einfach und scheint zu diesem Zeitpunkt nicht viel Konfigurierbarkeit zu haben, aber es ist funktional.

  • Oder klicke in gitk (das zumindest mit msysgit kommt) mit der rechten Maustaste auf eine Zeile in der Diff-Ansicht und wähle “Ursprung dieser Zeile anzeigen”

    – Herr_und_Frau_D

    28. April 2015 um 19:22 Uhr

  • @Mr_and_Mrs_D Was für ein tolles Feature. msysgit kommt mit Sourcetree. Vielen Dank.

    – Noumenon

    23. November 2018 um 21:08 Uhr

Benutzer-Avatar
Trebor Unhöflich

Kasse Git-Erweiterungen und sehen Sie, ob es das ist, wonach Sie suchen.

Benutzer-Avatar
Kamerad

Aptana-Studio, SublimeText und TextMate haben ähnliche Visualisierungen wie Sie dort, aber nichts mit Farben. Sie können konfigurieren Emacs oder vim um Ihnen eine farbige Version zu zeigen.

git blametool

Ich habe einen einfachen Wrapper geschrieben git blame was ziemlich gut funktioniert. I nenne es git blametool. Kapiert in meinem eRCaGuy_dotfiles Repo hier. Berufung git blametool öffnet die git blame Ausgabe in Ihrem “Schuldtool” Ihrer Wahl – was möglich ist irgendein Texteditor. Beispiele für Texteditoren sind: vim, emacs, gedit, nanoErhabener Text 3 (subldie Standardeinstellung und meine bevorzugte Wahl) usw.

Installation

Die neuesten Installationsanweisungen finden Sie in den Kommentaren oben in git-blametool.sh selbst. Es gibt viele Möglichkeiten, dies zu tun, aber hier sind einige mögliche Installationsanweisungen:

mkdir ~/dev  # make development dir
cd ~/dev
git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles.git
cd eRCaGuy_dotfiles/useful_scripts
# make symbolic link to "git-blametool.sh" inside ~/bin
mkdir -p ~/bin 
ln -si "${PWD}/git-blametool.sh" ~/bin/git-blametool

Schließen Sie Ihr Terminal und öffnen Sie es erneut. Vorausgesetzt ~/bin ist ein Teil von dir PATH (Es ist standardmäßig auf Ubuntu, wenn Sie die ~/bin dir und dann abmelden und wieder anmelden), jetzt haben Sie Zugriff auf git-blametooldie einfach als ausgeführt werden kann git blametool.

Laufen git blametool -h für das vollständige Hilfemenü.

Stellen Sie Ihren Schuldzuweisungseditor ein (siehe git blametool -h für Details):

# set your blametool editor as Sublime Text 3 (its command-line executable is 'subl'):
git config --global blametool.editor subl

# Other popular choices:
git config --global blametool.editor vim
git config --global blametool.editor emacs
git config --global blametool.editor nano
git config --global blametool.editor gedit
git config --global blametool.editor leafpad

Holen Sie sich Sublime Text 3, wenn Sie es nicht haben: https://www.sublimetext.com/3.

Installiere das Git Plugin, damit Sie die Syntaxhervorhebung von “Git Blame” erhalten: Strg + Wechsel + P –> “Package Control: Install Package” –> geben Sie “Git” ein und wählen Sie dieses Paket aus.

Verwendungszweck

Jetzt laufen git blametool! Es ist ein Wrapper herum git blame also akzeptiert es irgendein Optionen das git blame akzeptiert!

Beispielnutzung:

git blametool -h  # help menu
git blametool somefile.c
git blametool somebranch somefile.c

Demo

In meinem eRCaGuy_dotfiles Repo, das Sie gerade oben geklont haben, führen Sie Folgendes aus:

git blametool useful_scripts/git-diffn.sh

Sie werden so etwas sehen:
Geben Sie hier die Bildbeschreibung ein

Lassen Sie uns tiefer bohren. In Zeile 8 sehe ich Commit-Hash 68e96491, also doppelklicke ich in Sublime Text darauf und kopiere es. Jetzt kann ich das in meinem Terminal ausführen:

git blametool 68e96491 useful_scripts/git-diffn.sh

Und jetzt sehe ich:
Geben Sie hier die Bildbeschreibung ein

Beachten Sie, dass in Sublime Text 3 jetzt 2 Registerkarten geöffnet sind, die jeweils den Commit-Hash aus der git blame als Teil des Dateinamens. Ich möchte tiefer graben, also kopiere ich den Hash aus der ersten Zeile und führe Folgendes aus:

git blametool c294f965 useful_scripts/git-diffn.sh

Es hat dies eröffnet git blame in eine dritte Registerkarte in Sublime Text 3. Jetzt sehe ich Folgendes:
Geben Sie hier die Bildbeschreibung ein

Ich kann problemlos durch die 3 Registerkarten klicken. Kühl. Stellen Sie sich jetzt vor, ich hätte gefunden, wonach ich gesucht habe. Um einen direkten Vergleich zu sehen, führe ich dies aus, um den Vergleich zwischen Commit-Hash zu sehen c294f965 und 68e96491 in meld:

git difftool 68e96491 68e96491 useful_scripts/git-diffn.sh

Und hier ist, was ich sehe:
Geben Sie hier die Bildbeschreibung ein

Wenn Sie nicht haben meld befolgen Sie meine Anweisungen in meiner Antwort hier: Git mergetool with Meld on Windows.

Alternativen zu git blametool

Hier sind ein paar Alternativen:

  1. GitHub
    1. Navigieren Sie einfach zu einer Datei in einem Repo auf GitHub und klicken Sie auf den Link „Blame“. wie hier gezeigt: Geben Sie hier die Bildbeschreibung ein.
    2. Sie sehen jetzt ein nettes git blame in GitHub so anzeigen. Beachten Sie, dass Sie auf diese funky Fenstersymbol-Dinge klicken können, um weiter in das Fenster zurückzukehren git blame Geschichte: Geben Sie hier die Bildbeschreibung ein. Ein Klick auf den im Bild oben wäre zum Beispiel wie Laufen git blametool 68e96491 useful_scripts/git-diffn.shseit der git blametool Ausgabe für diese Zeile zeigt 68e96491 ist sein Commit-Hash.
  2. “Git Blame” Sublime Text 3-Paket. ich mag mein git blametool besser, aber das ist auch eine Option:
    1. https://packagecontrol.io/packages/Git%20blame
    2. https://github.com/frou/st3-gitblame

Siehe auch

  1. SEHR HILFREICH! Zeigen Sie den Bearbeitungsverlauf einer einzelnen Datei an!
    git log -p somefile.c
    

    Inspiriert von: Git-Schuld – frühere Commits?

  2. [my answer] Git Mergetool mit Meld unter Windows

Schlüsselwörter: git blametool; offen git blame im Editor Ihrer Wahl

Benutzer-Avatar
Gabriel Staples

Etwas spät, aber GitKraken unterstützt Geschichte und Schuld sehr gut.

1176790cookie-checkGibt es eine Git-Blamage-GUI ähnlich wie bzr qannotate?

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

Privacy policy