passende würde Ich magGIT: Ich möchte alle Dateien unstage ein bestimmtes Muster
git reset *.foo
aber diese Fehler laufen.
Ich denke, ich muss ein Rohr verwenden, aber ich bin mir nicht sicher, wie das geht.
Danke!
passende würde Ich magGIT: Ich möchte alle Dateien unstage ein bestimmtes Muster
git reset *.foo
aber diese Fehler laufen.
Ich denke, ich muss ein Rohr verwenden, aber ich bin mir nicht sicher, wie das geht.
Danke!
for i in `git status --porcelain | grep '^D.*\.foo$' | sed 's/^D \+//'`; do
git reset HEAD "$i"
git checkout "$i"
done
Danke. Jetzt war die gestufte Änderung, diese Dateien zu löschen. Also, wird das noch funktionieren? die Datei ist tatsächlich bereits im Verzeichnis – Jacko
gelöscht Nein, das wird nicht funktionieren. Ich werde meine Antwort mit einem neuen Befehl aktualisieren. – cdhowie
Antwort aktualisiert. – cdhowie
Wenn Sie Powershell verwenden, funktioniert das Folgende.
gci -re -in *foo | %{ git reset $_ }
In einer Anwendung Git GUI wie SmartGit ich durch das Muster der angezeigten Dateien würden filtern *.foo
, drücken Sie Strg + A, um alle gefilterten Dateien auszuwählen und den Unstage Befehl aufrufen.
Diese in Cygwin und Unix-env
git reset $(git diff --name-only --cached | grep *.foo)
Z. B. sollte funktionieren Ich möchte alle "Migrationen" im Pfad abgleichen.
git diff - nur-Name | grep Migrationen | xargs git Kasse
Wenn Sie Kasse wollen (Änderungen rückgängig machen) von unstaged geänderten Dateien auf ein bestimmtes Muster übereinstimmt, das funktioniert:
macOS:
git checkout $(git st -s | sed -E 's/^.{2}//' | grep '\.foo$')
Unix:
git checkout $(git st -s | sed -r 's/^.{2}//' | grep '\.foo$')
Ich habe dies nur mit M
modifizierten Dateien getestet. YMMV, wenn Sie auch umbenannte/gelöschte/konfliktbehaftete Dateien haben.
Hinweis: Diese Dateien wurden als gelöscht bereitgestellt. die Dateien befinden sich nicht mehr in meinem Arbeitsverzeichnis. Also ich denke, ich brauche etwas wie git checkout * .foo – Jacko