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:

alt text

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
È stato utile?

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 indipendentemente autocrlf

     

Se un file contiene terminazioni di linea CRLF in un repository con core.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'impostazione autocrlf.

Un'altra possibilità: filename errore di battitura

maiuscole e minuscole

Ho 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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top