Я хотел бы запуститьGIT: Я хочу, чтобы убрать из буфера все файлы, соответствующие определенному шаблону
git reset *.foo
, но это ошибки из.
Думаю, мне нужно использовать трубку, но я не уверен, как это сделать.
Спасибо!
Я хотел бы запуститьGIT: Я хочу, чтобы убрать из буфера все файлы, соответствующие определенному шаблону
git reset *.foo
, но это ошибки из.
Думаю, мне нужно использовать трубку, но я не уверен, как это сделать.
Спасибо!
for i in `git status --porcelain | grep '^D.*\.foo$' | sed 's/^D \+//'`; do
git reset HEAD "$i"
git checkout "$i"
done
Если вы используете Powershell, то следующее будет работать.
gci -re -in *foo | %{ git reset $_ }
В приложении Git GUI как SmartGit я бы фильтровать отображаемые файлы по шаблону *.foo
, нажмите Ctrl + A, чтобы выбрать все отфильтрованные файлы и вызовите команду убрать из буфера.
Это должно работать в Cygwin и UNIX окр
git reset $(git diff --name-only --cached | grep *.foo)
Э.Г. Я хочу сопоставить все «миграции» в пути.
git diff --name-only | grep migrations | xargs мерзавец фотографии
Если вы хотите проверки (отменить изменения) в unstaged измененных файлов, соответствующих заданному шаблону, это работает:
Macos:
git checkout $(git st -s | sed -E 's/^.{2}//' | grep '\.foo$')
Unix:
git checkout $(git st -s | sed -r 's/^.{2}//' | grep '\.foo$')
Я только протестировал это с M
измененными файлами. YMMV, если вы также переименовали/удалили/конфликтуют файлы.
Примечание: эти файлы были поставлены как удаленные. то есть файлы больше не находятся в моем рабочем каталоге. Так что я думаю, мне нужно что-то вроде git checkout * .foo – Jacko