Ich habe oft eine Situation, wo ich git add
eine Reihe von Dateien für ein Commit bearbeitet habe, aber dann eine Änderung an diesen Dateien vornehmen muss, damit die Änderungen an diesen Dateien in Changed but not updated
enden.
Gibt es einen einzigen Liner, den ich in git add
ausführen kann, nur die Dateien, die in Changed but not updated
und Changes to be committed
lists existieren?
Für das obige Beispiel möchte ich nur Foo.java
und Bar.java
, aber nicht FooBar.java
der Changes to be committed:
Liste hinzufügen.
Die angenommene Antwort funktioniert nicht, wenn Dateinamen ein Leerzeichen enthalten. Auch -u ist in diesem Fall nutzlos, fügt aber alle nicht-geladenen Dateien hinzu, wenn keine Dateien in Changed but not updated
und Changes to be committed
list vorhanden sind. Verwenden Sie stattdessen:
Dies funktioniert nur für Dateien, die nur geändert werden. Wenn Sie möchten, dass dies auch für Dateien funktioniert, die gelöscht, hinzugefügt, umbenannt oder kopiert werden, verwenden Sie Folgendes:
%Vor%Aber sei vorsichtig mit dem letzten. Wenn die Datei beispielsweise im Index hinzugefügt wird, ihre Löschung jedoch nicht erfolgt, wird durch das Ausführen dieses Befehls auch die Datei im Index gelöscht, wodurch Sie den Inhalt dieser Datei verlieren.
Beachten Sie, dass beide nur im Stammverzeichnis Ihres git-Repos funktionieren.
Tags und Links git