12 Stimmen

Herausfinden, wann Code in Git geändert wurde

Ich glaube nicht, dass es einen einfacheren Weg gibt, aber ich dachte, ich frage mal nach, um sicherzugehen.

Ich habe einen Code, bei dem eine wichtige Zeile (von mir) gelöscht wurde. Ich wollte herausfinden, in welchem Commit ich diese Zeile versehentlich gelöscht habe. Der einzige Weg, den ich dafür finden konnte, war, mit Git "diff'ing" auf nachfolgende frühere Commits anzuwenden, einen nach dem anderen, bis ich den Commit fand, in dem die Zeile geändert wurde.

Gibt es einen einfacheren Weg, um herauszufinden, bei welchem Commit ein bestimmter Teil des Codes geändert wurde?

24voto

CB Bailey Punkte 693084

Wenn Sie nur eine Zeile geändert oder hinzugefügt haben, können Sie natürlich auch git blame . Wenn Sie die Linie nur vollständig entfernt haben, hilft Ihnen das natürlich nicht weiter.

Wenn Sie zumindest einen Teil des Textes in der gelöschten Zeile kennen, können Sie die Option "Spitzhacke" verwenden, um git log um die zu durchsuchenden Commits einzuschränken.

z.B.

git log -S"important phrase" -p -- <file>

5voto

Phil Miller Punkte 34232

git log -p erhalten Sie ein vollständiges Protokoll mit Diffs, das Sie durchsuchen oder durchblättern können.

git bisect bietet Ihnen Unterstützung bei der Suche. Starten Sie die Suche an einer Stelle, die weit hinten liegt, und sagen Sie ihr git bisect good wenn die Leitung vorhanden ist, und git bisect bad wenn sie es nicht ist. Letztendlich wird Git zu dem Commit konvergieren, bei dem es gelöscht wurde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X