Wie kann ich das umbenennen Schwelle bei der übermittlung von Dateien im git?
Ich versuche in der git-Historie Momentaufnahmen eines bestimmten Projekts. Ich Tue dies durch das Auffüllen des repository-Verzeichnisses mit dem Inhalt von jedem snapshot und dann läuft
git add -A .
git commit -m 'Version X'
Dies ist die empfohlene Methode ist in diese Antwort. Allerdings sehe ich, dass der commit erkennt die Datei umbenennt, nur, wenn 100% der Inhalt der Datei bleiben die gleichen. Gibt es eine Möglichkeit zu beeinflussen, benennen Sie die Erkennung von git commit
zu machen, finden Sie benennt, wo die Datei-Inhalte haben sich ein wenig geändert? Ich sehe, dass git merge
und git diff
haben verschiedene Optionen zur Steuerung der umbenennen-Schwelle, aber diese Optionen gibt es nicht für git commit
.
Dinge, die ich versucht habe:
- Auffinden der Dateien umbenannt und mit home-brew " - Skript, sowie die Durchführung einer Begehung mit den original-Dateien umbenannt, um die neuen Standorte, bevor der neue Inhalt der Datei. Jedoch, dies führt zu einer künstlichen Begehen, und scheint unelegant, weil es nicht git verwenden, umbenennen Erkennung Funktionalität.
-
Erstellen eines separaten Zweig für jeden snapshot und dann die Zusammenführung der aufeinander folgenden Zweige auf
master
mitgit merge -s recursive -Xtheirs -Xpatience -Xrename-threshold=20
Jedoch, dieses Links ich mit der umbenannten Dateien der alten version in Platz, während es auch versäumt zu erkennen, die benennt.
- Spielt es eine Rolle? Solch eine option in
git commit
würde nur den Einfluss, dass die Befehle' UI; Git nicht wirklich verfolgen benennt. - Ich möchte
git log --follow
für die Arbeit über die benennt. Mit einer einfachen Reihenfolge von commits, hält es bei der neuesten version der Datei.
Du musst angemeldet sein, um einen Kommentar abzugeben.
git commit
nie erkennt, benennt. Es ist einfach schreibt Inhalt in die Ablage. Benennt (und Kopien) sind nur erkannt, nach der Tat, d.h. beim ausführengit diff
,git merge
und Freunde. Das ist, weilgit
nicht speichern, umbenennen/kopieren von Informationen.git commit
zeigt an, ob einige Dateien umbenannt wurden oder nicht. Ich habe gesehen, dass bei diesem Ausgang zeigt an umbenennen kann ich wieder Folgen, die Datei ist die Geschichte mitgit log --follow
. Dies ist, was ich whish zu erreichen.git-commit
haben eine solche option.git log --follow
.git rm --cached
gefolgt vongit add
.Als angegeben in den Kommentaren und eine andere Antwort, es hat keinen Sinn, passen Sie die rename detection threshold in den commit, denn dies würde sich nur ändern Sie die Ausgabe des Befehls, nicht das, was tatsächlich gespeichert Begehen.
Was Sie kann tun, jedoch ist stellen Sie die rename detection threshold in der
git log
Befehl. Sie tun dies, indem Sie die--find-renames
parameter. Diese meist führt die Ergebnisse, die ich erzielen wollte.-M90%
bedeutet, Git sollten ein löschen/hinzufügen-pair-Mädchen zu sein, ein umbenennen, wenn mehr als 90% der Datei ist unverändert.