Ist es möglich, den Indexstatus einer bestimmten Datei mit dem Inhalt ihres Arbeitsbaums auszutauschen?
Antwort
Zu viele Anzeigen?Sie können Inhalte aus dem Index an jeden gewünschten Ort bringen, indem Sie git show
Objekt-Name , wobei Objekt-Name ist die SHA1- oder :filename
(das bedeutet die Version aus dem Index) oder revision:filename
(d.h. die Version aus der gegebenen Revision). Also entweder:
git show :filename > filename.tmp
git add filename
mv filename.tmp filename
oder
OBJECT=$(git rev-parse :filename)
git add filename
git show $OBJECT > filename
Ersteres speichert die Daten auf der Festplatte, bevor der Index geändert wird, während letzteres einfach den Index nach dem Objektnamen fragt, den er hatte, ihn ändert und dann das Objekt aus dem Objektspeicher holt. Zu diesem Zeitpunkt verweist nichts mehr auf das Objekt, aber es wird nicht entfernt, bis Sie den Befehl git gc
.