Gibt es in Git eine (einfache) Möglichkeit, den Index zu ändern, so dass nur Änderungen an Dateien hinzugefügt werden, die bereits darin enthalten sind? Es klingt etwas kompliziert, aber was ich erreichen möchte, ist einfach.Staging-Dateien aktualisieren
Können sagen, mein Index sieht wie folgt aus (leicht git status
Ausgang gestrippt):
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: B
# modified: C
#
# Untracked files:
# D
Einige Änderungen an B
im Index enthalten sind, sind einige nicht. C
wird überhaupt nicht inszeniert.
Wie kann ich B
im Index aktualisieren (nicht gestartete Änderungen durchführen), ohne C
hinzuzufügen?
I.e. Ich möchte mich für den Index wie folgt aussehen:
# Changes to be committed:
# modified: A
# modified: B
#
# Changed but not updated:
# modified: C
#
# Untracked files:
# D
In diesem einfachen Fall kann es natürlich mit einem einfachen git add B
erreicht werden, aber ich würde gerne wissen, ob es eine einfache Antwort für den allgemeinen Fall ist. Ich versuchte git add --refresh
, aber wenn ich richtig verstehe, aktualisiert das nur Statistikinformationen.
Können Sie zeigen echter Anwendungsfall, wo du das machen willst? Ich kann mir das nicht vorstellen (wenn ich eine Datei hinzufüge und sie dann mehr modifiziere, heißt das nicht automatisch, dass ich auch diese Änderungen hinzufügen möchte, besonders wenn ich keine Änderungen in anderen Dateien hinzufügen möchte). –
@ JanHudec Ich würde das wahrscheinlich nicht brauchen, wenn ich strenger wäre und nur die Dateien berührte, die in den Commit ('B') gehen sollten. Jedoch manchmal werde ich davongetragen und beginne Änderungen vorzunehmen, die in einem neuen Commit ('C') sein sollten, also füge ich' B' zum Index hinzu. Bevor ich etwas mache, schaue ich immer auf diff --cached und manchmal säubere ich etwas in 'B'. und das ist, wenn ich das brauche. Ich denke, es könnte wahrscheinlich auf andere Weise gelöst werden, sagen wir mit stash – axelarge
Mein Punkt ist, dass, wenn Sie etwas in der Datei 'X' tun, das Commit' B' gehen sollte und sich fortbewegen und Änderungen, die in commit gehen sollten 'C', einige dieser Änderungen sind oft wieder zu' X' Datei. In diesem Fall möchten Sie manuell -i einzelne hunks hinzufügen und nicht nur die Datei 'X' erneut hinzufügen. Offensichtlich hast du wahrscheinlich etwas an dem Punkt bemerkt, an dem du dich verändert hast, weshalb es unwahrscheinlich ist, dass die zusätzlichen Änderungen die Dateien der ersten Gruppe berühren. –