2012-03-09 24 views
20

Mam plik foo.txt, który chcę usunąć, i inny, bar.txt, który chcę dodać. Jeśli te dwa pliki mają więcej niż 50% zawartości, która jest taka sama, Git uzna, że ​​nazwa foo.txt została zmieniona na bar.txt. Jak mogę sprawić, by Git naprawdę postrzegał to jako indywidualne usuwanie, z pojedynczym dodatkiem, w tym samym zatwierdzeniu, bez zmiany globalnego wykrywania progu%.Uczyń git ignorować zmień nazwę

Dzięki!

+4

Czy istnieje szczególny powód, dla którego rejestrowanie go jako "zmianę nazwy" jest problemem? – Ryan

+6

Problem polega na tym, że dwa pliki nie powinny zawierać swojej historii. Załóżmy, że mam plik o nazwie "JohnDoe.txt", który zawiera adres służbowy Johna i numer telefonu 555-555-1212. John opuszcza firmę w tym samym czasie, w którym Jane Smith dołącza do firmy (tworząc plik "JaneSmith.txt"). Jej adres służbowy jest taki sam, ale numer telefonu to 555-555-1313. Jeśli dwa add/rm są częścią tego samego zatwierdzenia, Git uzna to za zmianę nazwy, a 'git log --follow' powie mi, że są to te same pliki (kiedy oczywiście nie chcę, aby były). Propozycje? – torngat

+0

@Poke Nie wiem, jak działa duplikat. Moje pytanie zadano na rok przed tym, który zidentyfikowałeś. Czy podchodzisz do "najbardziej kompletnej" odpowiedzi? – torngat

Odpowiedz

18

Nie możesz. Wewnętrznie, zostaną zapisane jako usunięcie i dodatek. Wyświetlenie "zmiany nazwy" zostanie obliczone później i będzie zależało od tego progu.

1

Aby wyłączyć wykrywanie zmiany nazwy z TortoiseGit (choć jako opcja git diff, powinny mieć zastosowanie do git sama również) I dodaje następujący wiersz do gitconfig, który wydaje się załatwić sprawę (chociaż na podstawie dokumentacji Nie sądzę, że powinno):

[diff] 
    renameLimit = 1