Git Schuld keine Geschichte zeigt,
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:
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
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 vonautocrlf
Wenn eine Datei
CRLF
Zeilenende in einem Repository mitcore.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 derautocrlf
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