Git colpa mostrando senza storia
Domanda
Quando eseguo la colpa git su un file (utilizzando msysgit) Ho sempre trovato il seguente tipo di stampa:
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
vale a dire. mostra tutte le linee come non ancora impegnati.
Ho provato questo su molti file, che hanno molti commit - sempre gli stessi risultati. Ho anche provato ad utilizzare il percorso relativo / pieno, ma sembra non fare differenza.
Quando si tenta di utilizzare la colpa di TortoiseGit mostra sempre ogni linea ad essere ultima impegnato al primo commit:
anche pensato, come ho detto, ci sono in realtà decine di commit nella storia di questi file ..
idee?
Modifica - Maggiori Informazioni
- Git colpa funziona bene su GitHub, dove è ospitato questo repository.
- Funziona bene anche se ho clonarlo ad una macchina Linux e fare la colpa non
- Sembra che solo su msysgit questo non funziona
Soluzione
git blame file.txt
incolpa la versione di file.txt nella vostra copia di lavoro. Se file.txt ha Windows-a capo (CRLF) nella repo e hai core.autocrlf = true
, allora ogni linea di file.txt verrà considerato diverso e sarà segnalato da git blame
come non ancora impegnati.
Il motivo per cui git blame <my_branch>
(o, meglio ancora git blame HEAD
, che funziona non importa quale ramo si è in) funziona, è che non incolpa la versione copia di lavoro quindi non c'è alcun potenziale per le linee non ancora commessi.
Altri suggerimenti
Trovato la soluzione -. Molto strano
Se corro questo:
git blame file.txt
La storia è rotto, come pubblicato in precedenza.
Se faccio questo, invece:
git blame my_branch file.txt
Funziona!
Questo è molto strano, perché AFAICS l'utilizzo non richiede un nome del ramo:
$ git blame
usage: git blame [options] [rev-opts] [rev] [--] file
A partire git 2.0.1 (25 Giugno 2014), la colpa git dovrebbe interrompere la segnalazione tutte le linee di quelle "non ancora impegnati".
commettere 4d4813a (26 Apr 2014) di brian m. Carlson (bk2204
) .
(fusa per Junio ??Hamano C - gitster
- in commettere e934c67 , 6 giugno 2014)
blame
: gestire correttamente i file indipendentementeautocrlf
Se un file contiene terminazioni di linea
CRLF
in un repository concore.autocrlf=input
, allora la colpa linee sempre contrassegnato come "Not Committed Yet
", anche se erano non modificato.
Non tentare di convertire i fine riga durante la creazione del falso commesso in modo che la colpa funziona correttamente indipendentemente dall'impostazioneautocrlf
.
Un'altra possibilità: filename errore di battitura
maiuscole e minuscoleHo avuto lo stesso problema con git colpa file.txt, poi si rese conto che avevo fatto un nome tra maiuscole e minuscole errore di battitura con file.txt
cambiato in File.txt (per esempio), e ho ottenuto i risultati attesi w / o dover specificare my_branch: colpa git File.txt