Das passiert mir oft:
Ich arbeite im Laufe von ein oder zwei Tagen gleichzeitig an einigen Änderungen, und wenn es Zeit für ein Commit ist, vergesse ich am Ende, was sich in einer bestimmten Datei geändert hat. (Dies ist nur ein persönliches Git-Repo, daher kann ich mehr als ein Update in einem Commit haben.)
Gibt es eine Möglichkeit, eine Vorschau der Änderungen zwischen meiner lokalen Datei, die gerade eingecheckt wird, und dem letzten Commit für diese Datei anzuzeigen?
Etwas wie:
git diff --changed /myfile.txt
Und es würde so etwas ausdrucken wie:
line 23
(last commit): var = 2+2
(current): var = myfunction() + 2
line 149
(last commit): return var
(current): return var / 7
Auf diese Weise konnte ich schnell sehen, was ich in dieser Datei seit dem letzten Einchecken getan hatte.
git add -p
. Überprüfen Sie jede Änderung, genehmigen Sie selektiv Änderungen an der Phase, brechen Sie sie jederzeit ab, wenn Sie Ihre Meinung ändern, und bearbeiten Sie sogar einen Block inline. Ich niegit add
ohne es.q
git config --global diff.noprefix true
.zeigt Ihnen Änderungen an, die Sie seit dem letzten Commit zu Ihrem Arbeitsbaum hinzugefügt haben. Alle Änderungen (inszeniert oder nicht inszeniert) werden angezeigt.
quelle
So überprüfen Sie lokale Unterschiede:
oder Sie können ein Diff-Tool verwenden (falls Sie einige Änderungen rückgängig machen möchten):
Um
git difftool
effizienter zu arbeiten, installieren und verwenden Sie Ihr bevorzugtes GUI-Tool wie Meld, DiffMerge oder OpenDiff.Hinweis: Sie können auch
.
(anstelle des Dateinamens) aktuelle Verzeichnisänderungen anzeigen.Verwenden Sie zum Überprüfen der Änderungen pro
git blame
Zeile Folgendes : Hiermit wird angezeigt, welche Zeile in welchem Commit festgeschrieben wurde.master
Führen Sie Folgendes aus, um die eigentliche Datei vor dem Festschreiben anzuzeigen (wo befindet sich Ihr Zweig):quelle
Haben Sie versucht
-v
(oder--verbose
) Option fürgit commit
? Es fügt den Unterschied des Commits im Nachrichteneditor hinzu.quelle
Changes not staged for commit:
wodurch der Commit-Editor sauberer wird?Eine andere zu berücksichtigende Technik, wenn Sie eine Datei mit dem letzten Commit vergleichen möchten, der pedantischer ist:
Der Vorteil dieser Technik ist, dass Sie sie auch mit dem vorletzten Commit vergleichen können mit:
und der davor:
Sie können auch das Caret-Zeichen '^' durch '~' und 'master' durch 'you branch name' ersetzen, wenn Sie sich nicht im Master-Zweig befinden.
quelle
Ich denke, dies ist der perfekte Anwendungsfall, der eine grafische Benutzeroberfläche garantiert. - Obwohl ich völlig verstehe, dass es auch innerhalb der Kommandozeile gut genug erreicht werden kann.
Persönlich mache ich jedes Commit von mir aus dem Git-GUI. In dem ich mehrere atomare Commits mit separaten Hunks / Lines durchführen kann, wenn dies sinnvoll ist.
Gut Gui ermöglicht die Anzeige der Unterschiede in einer gut formatierten farbigen Oberfläche, ist eher hell. Sieht so aus, als sollten Sie auch auschecken.
quelle
git bisect
, auf die nicht wirklich zugegriffen werden kann.tig
"Text-Mode-Schnittstelle für Git".Gehen Sie unter macOS in das Git-Stammverzeichnis und geben Sie ein
git diff *
quelle
Abgesehen von der Verwendung einer dedizierten Commit-GUI habe ich am besten Folgendes verwendet:
git difftool -d
- Dies öffnet Ihr Diff-Tool im Verzeichnisvergleichsmodus und vergleicht HEAD mit dem aktuellen Dirty-Ordner.quelle
Dies zeigt einen Vergleich mit dem VI-Spaltfenster im Terminal.
quelle