Я переместил файлы с 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?