vorrei correreGIT: Voglio unstage tutti i file corrispondenti un certo modello
git reset *.foo
ma questo gli errori fuori.
Penso di aver bisogno di usare un tubo, ma non sono sicuro di come farlo.
Grazie!
vorrei correreGIT: Voglio unstage tutti i file corrispondenti un certo modello
git reset *.foo
ma questo gli errori fuori.
Penso di aver bisogno di usare un tubo, ma non sono sicuro di come farlo.
Grazie!
for i in `git status --porcelain | grep '^D.*\.foo$' | sed 's/^D \+//'`; do
git reset HEAD "$i"
git checkout "$i"
done
Se si utilizza Powershell, quanto segue funzionerà.
gci -re -in *foo | %{ git reset $_ }
In un'applicazione Git GUI come SmartGit avrei filtrare i file visualizzati dal modello *.foo
, premere Ctrl + A per selezionare tutti i file filtrati e richiamare il comando Unstage.
Questo dovrebbe funzionare in Cygwin e UNIX ENV
git reset $(git diff --name-only --cached | grep *.foo)
Ad es Voglio abbinare tutte le "migrazioni" nel percorso.
git diff --name-only | migrazioni di grep | xargs git checkout
Se si vuole cassa (annullare le modifiche) di unstaged file modificati che corrispondono a un determinato modello, questo funziona:
MacOS:
git checkout $(git st -s | sed -E 's/^.{2}//' | grep '\.foo$')
Unix:
git checkout $(git st -s | sed -r 's/^.{2}//' | grep '\.foo$')
Ho provato solo questo con i file modificati M
. YMMV se i file sono stati rinominati/cancellati/in conflitto.
Nota: questi file sono stati gestiti come eliminati. i file non sono più nella mia directory di lavoro. Quindi immagino di aver bisogno di qualcosa come git checkout * .foo – Jacko