Gibt es eine Möglichkeit, Befehle zu verfolgen, die ich in Git unter Windows verwendet habe? Ich möchte alle Befehle anzeigen, die ich auf mein Repository angewendet habe.
Ich möchte in der Lage sein, den Befehlsverlauf noch einmal durchzugehen und den Befehl herauszufinden, der das Problem verursacht hat, falls einer aufgetreten ist.
Es wäre eine Sache, den Verlauf von Commits zu sehen, aber um einen Verlauf anderer Aktionen wie das Erstellen eines Zweigs oder das Hinzufügen einer Fernbedienung zu führen, werden diese nachverfolgt?
.git/logs
, sehen Sie den Verlauf des Commits, auf das jeder Zweig zeigt.push
ing den Status einer lokalen Niederlassung nicht ändert, werden siereflog
anscheinend nicht gespeichert. Einpush
Blick in.git/logs/refs/remotes/*/*
die Filiale ist daher die einzige Möglichkeit, Ihrepush
Geschichte anzuzeigen .Antworten:
git zeigt Änderungen in Commits an, die sich auf den Index auswirken, z
git rm
. Es wird kein Protokoll aller von Ihnen ausgeführten Git-Befehle gespeichert.Eine große Anzahl von Git-Befehlen wirkt sich jedoch in gewisser Weise auf den Index aus , z. B. beim Erstellen eines neuen Zweigs. Diese Änderungen werden im Festschreibungsverlauf angezeigt, mit dem Sie sie anzeigen können
git log
.Es gibt jedoch destruktive Änderungen, die Git nicht verfolgen kann, wie z
git reset
.Um Ihre Frage zu beantworten, speichert git keinen absoluten Verlauf von
git
Befehlen, die Sie in einem Repository ausgeführt haben. Es ist jedoch häufig möglich, den von Ihnen ausgeführten Befehl über den Festschreibungsverlauf zu interpolieren.quelle
git history
wäre nützlich, um beispielsweise zu sehen, welche Befehle in einem bestimmten Klon ausgeführt wurden .git reflog
ist was du willst. Siehe Antwort unten.git reflog
zeigt tatsächlich die Befehle selbst. Übrigens ist die Shell nur ein etwas direkterer Weg, um auf die Git-Befehle zu schließen, aber ein Git-Repo kann von mehreren Shells berührt werden. Es ist besser, git zu fragen, welche Befehle verwendet wurden.Sie können den Verlauf mit git-reflog sehen ( Beispiel hier ):
quelle
git reflog
zeigt zwar alle Positionen an, denen Ihr HEAD gefolgt ist , zeigt jedoch nicht alle git-Befehle an. Git-Befehle, die den Kopf nicht bewegen (zum Beispielgit branch -D my_precious_branch
), werden dort nicht angezeigt.git reflog --all
?git remote add foo bar
. Es wird nicht in angezeigtgit reflog --all
, da der HEAD-Zeiger nicht geändert wird.git reflog
zeigt mir keine Befehle wiegit status
aso., mit oder ohne--all
Parameter.Ein Protokoll Ihrer Befehle ist möglicherweise in Ihrem Shell-Verlauf verfügbar.
Wenn Sie die Liste der ausgeführten Befehle nicht sehen möchten, exportieren Sie die Liste in eine Datei.
Sie können den exportierten Speicherauszug so einschränken, dass nur Befehle mit "git" angezeigt werden, indem Sie ihn mit grep weiterleiten
Der Verlauf kann als solche formatierte Zeilen enthalten
Mit der Nummer können Sie den Befehl mit einem Ausrufezeichen erneut ausführen
quelle
Wenn Sie CentOS oder eine andere Linux-Variante verwenden, tun Sie einfach
Ctrl
+R
an der Eingabeaufforderung und geben Sie eingit
.Wenn Sie weiterhin
Ctrl
+R
drücken, wird Ihr Verlauf in umgekehrter Reihenfolge nach Befehlen durchsucht, die mit beginnengit
quelle
Geben Sie
history
Ihr Terminal ein. Es ist technisch gesehen kein Idiot, aber ich denke, es ist das, was Sie wollen.quelle
Wenn Sie Windows PowerShell verwenden, können Sie "git" eingeben und F8 drücken. Drücken Sie weiterhin F8, um alle Ihre Git-Befehle zu durchlaufen.
Oder wenn Sie Cygwin verwenden, können Sie dasselbe mit ^ R tun.
quelle
Ich habe herausgefunden, dass in meiner Version von git bash "2.24.0.windows.2" in meinem "home" -Ordner unter Windows-Benutzern eine Datei mit dem Namen ".bash-history" ohne Dateierweiterung in diesem Ordner vorhanden ist. Es wird erst erstellt, nachdem Sie die Bash beendet haben.
Hier ist mein Workflow:
Wenn Sie wirklich Punkte wollen, könnten Sie eine Batch-Datei erstellen, um all dies zu tun, aber das ist gut genug für mich. Hoffe es hilft jemandem.
quelle