Я переместил файлы с Project на Project/src. Git создается впечатление, что я удалил файлы из Project и создал новые файлы в Project/src.
Кроме того, у меня есть несколько других изменений в рабочем дереве, которые я хочу зафиксировать. Мой git status:
$ git status
# On branch feature/cmake
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# new file: .gitignore
# new file: CMakeLists.txt
# deleted: Wasa.xcodeproj/project.pbxproj
# deleted: Wasa/Wasa.1
# renamed: Wasa/main.cpp -> main.cpp
# new file: src/CMakeLists.txt
# Lots of new files listed here
#
# Changes not staged for commit:
# (use "git add/rm ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: CMakeLists.txt
# deleted: IODevice.h
# Lots of deleted files listed here.
Я хочу отключить исходные файлы - *.{cpp,h}. Я знаю, как неустранить (ссылка здесь, например, полезна). То, что я хотел бы избежать, это напечатать много git checkout <filename>.
Я не хочу проверять HEAD, потому что некоторые изменения в рабочем дереве я хотел бы сохранить. Я пробовал сделать git checkout *.{cpp,h}, который дает следующее:
$ git checkout *.{cpp,h}
zsh: no matches found: *.cpp
Поскольку файлы в настоящее время не существуют в рабочем дереве, я не могу их проверить, потому что *.{cpp,h} не соответствует никаким файлам.
Все файлы находятся в Project/src; возможно, существует регулярное выражение или что-то, что я мог бы запустить с выходом ls src, переданным в команду git checkout, но я хотел бы знать, может ли Git сделать это для меня сам по себе. Есть ли способ сделать это в git?