Ответ 1
Сбегите *
:
$ git checkout \*.{cpp,h}
Я переместил файлы с 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?
Сбегите *
:
$ git checkout \*.{cpp,h}
Для проверки нескольких файлов. Я просто применил подстановочные знаки, и это сработало для меня. Для конкретных файлов нам, вероятно, потребуется другой трюк.
Я использовал:
git checkout -- *.*
в моем Git Bash. и все измененные файлы в моей рабочей области были заменены на те, что были в репо.
Я надеюсь, что это поможет, спасибо.