Frage

Wenn ich auf eine Datei git Schuld laufen (mit msysgit) ich immer erhalten folgende Art von Ausdruck:

00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   1) package co
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   2) {
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   3)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   4)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   5)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   6)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   7)      impor

d. es zeigt alle Linien als noch nicht verpflichtet.

Ich habe versucht, dies auf viele Dateien, die viele Commits haben - immer die gleichen Ergebnisse. Ich auch relativ / vollständigen Pfad versucht, mit, aber es scheint keinen Unterschied zu machen.

Wenn ich versuche, TortoiseGit die Schuld zu verwenden, es zeigt immer jede Zeile zuletzt am ersten begehen begangen werden:

alt text

dachte sogar, wie ich gesagt habe, gibt es tatsächlich zig Commits in der Geschichte dieser Dateien ..

Ideen?

Bearbeiten - Weitere Informationen

  • Git Schuld funktioniert auf GitHub, wo diese Repo gehostet wird.
  • Es funktioniert auch gut, wenn ich es auf einem Linux-Rechner zu klonen und zu tun, die Schuld dort
  • Es scheint, dass nur auf msysgit dies nicht funktioniert
War es hilfreich?

Lösung

git blame file.txt tadelt die Version von datei.txt in Ihrer Arbeitskopie. Wenn datei.txt hat Windows Zeilenumbrüche (CRLF) im Repo und Sie core.autocrlf = true haben, dann wird jede Zeile von datei.txt werden unterschiedliche betrachtet und von git blame gemeldet werden als noch nicht begangen hat.

Der Grund, warum git blame <my_branch> (oder noch besser git blame HEAD, die unabhängig davon funktioniert, was Zweig du bist auf) funktioniert, ist, dass es nicht die Arbeitskopie Version nicht die Schuld, so gibt es für Linien kein Potenzial ist noch nicht begangen werden.

Andere Tipps

Gefunden die Lösung -. Sehr seltsam

Wenn ich ausführen, um diese:

git blame file.txt

Die Geschichte ist gebrochen, wie geschrieben oben.

Wenn ich dies tun, statt:

git blame my_branch file.txt

Es funktioniert!

Das ist sehr seltsam, weil AFAICS die Nutzung erfordert keinen Zweig Name:

$ git blame
usage: git blame [options] [rev-opts] [rev] [--] file

Starten git 2.0.1 (25. Juni 2014), git Schuld sollte alle diese "noch nicht verpflichtet" Linien stoppt Berichterstattung.

Siehe begehen 4d4813a (26. April 2014) von brian m. carlson (bk2204) .
(Verschmelzung von Junio ??C Hamano - gitster - in begehen e934c67 , 6. Juni 2014)

blame: korrekt Dateien verarbeiten, unabhängig von autocrlf

Wenn eine Datei CRLF Zeilenende in einem Repository mit core.autocrlf=input enthalten ist, dann die Schuld immer markierte Linien als „Not Committed Yet“, auch wenn sie nicht modifizierten waren.
Versuchen Sie nicht, die Zeilenende zu konvertieren, wenn die gefälschte Schaffung begehen, so dass Schuld korrekt unabhängig von der autocrlf Einstellung funktioniert.

Eine andere Möglichkeit: case-sensitive Dateinamen Tippfehler

Ich hatte das gleiche Problem mit git Schuld datei.txt, dann erkannte, dass ich Groß- und Kleinschreibung Dateinamen gemacht habe Typo mit file.txt

Changed es File.txt (zum Beispiel), und ich habe die erwarteten Ergebnisse w / o my_branch angeben zu müssen: git Schuld File.txt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top