2011-01-03 11 views
9

Il rapporto sullo stato attualmente mostra la seguente:Perché git confonde la rimozione con rinomina/copia?

http://gyazo.com/29176f171b2cdd21ba6a929799b45358.png

Tuttavia, quando lo faccio

git rm include/oogl/Buffer.hpp

avviene quanto segue:

http://gyazo.com/6c33678bbe4afa2e3ec2cf4a382b637f.png

Come faccio solo falla rimuovere th a file e lasciare il resto da solo?

+0

_Salvare il testo su un'immagine è più facile come incollarlo proprio come è? _ –

+1

Quando ho posto questa domanda, non sapevo come copiare dalla console di Windows. – Overv

risposta

14

Git è basta rimuovere il file. I nomi vengono rilevati euristicamente in base alla quantità di contenuto identico nei due file, ma questa informazione non è memorizzata nel commit. Quando si controlla il commit in un secondo momento, Git determinerà nuovamente euristicamente se si è verificato un rinominazione basato solo sui file nuovi e rimossi. Quindi non ti preoccupare.

(Vedere la Git FAQ, sezione Why does git not "track" renames?, ed in particolare questo testo:. "Git ha un comando rename git mv, ma che è solo per comodità L'effetto è indistinguibile dalla rimozione del file e l'aggiunta di un altro con il nome diverso e lo stesso contenuto. ")

+1

La mia memoria non funziona, ma penso ci sia un'impostazione per determinare quanto devono essere chiusi i file per essere considerati un rinominare. –

+0

@Martinho: non riesco a trovare una tale impostazione nella pagina di manuale config' 'git, anche se ho trovato uno che colpisce il numero di file che esaminerà per la rinomina. – cdhowie

+0

50% è il limite predefinito di quanto in basso la somiglianza può andare prima che non è considerato un "rinominare con modifiche" più, ma un "delete-add". – user502515

Problemi correlati