2016-11-22 4 views
0

Ich habe vor kurzem eine große Änderung der Ordnerstruktur in einem Zweig mit git mv, was in keine hinzugefügt/entfernte Dateien nur umbenannt, um Geschichte zu behalten.Git fusion keep mv Geschichte

Das Zusammenführen dieses Zweigs mit anderen Zweigen führt zum Hinzufügen/Entfernen aller Dateien mit Inhaltsänderungen.

Git versteht offensichtlich die Dateien verschoben, seit es versucht, die Remove/Add durchzuführen.

Wie kann ich sicherstellen, dass der Verlauf meiner Dateien während der Zusammenführung mit umbenannten Dateien intakt bleibt?

Antwort

0

Git verfolgt keine Umbenennungen, sondern leitet sie heuristisch ab, indem ermittelt wird, wie viele entfernte Dateien und hinzugefügte Dateien übereinstimmen. Es gibt einige config (und Befehlszeilenoptionen), die die Erkennung helfen können:

[diff] 
    renamelimit = 3000 

, die Sie über git config --global diff.renameLimit 3000 einstellen. Es gibt auch eine merge.renameLimit, aber wenn es nicht festgelegt ist, wird standardmäßig diff.renameLimit. Leider kann ich keinen dokumentierten Standardwert finden, aber die source code scheint anzuzeigen, dass 400 das Standardlimit ist.

Oder Sie können die -l Option zu git diff sowie die -M/--find-renames Option betrachten.