При использовании «git add» с шаблоном файла он только рекурсивно добавляет неотслеживаемые файлы и игнорирует измененные, если они не находятся в текущей папке.
Пример:
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: level1/test1.txt
# modified: level1/level2/test1.txt
#
# Untracked files:
# (use "git add <file>..." to incldude in what will be committed)
#
# level1/test2.txt
# level1/level2/test2.txt
no changes added to commit (use "git add" and/or "git commit -a")
$ git add level1\*.txt
$ git status
# On branch master
# Changes to be committed:
# new file: level1/level2/test2.txt
# new file: level1/test2.txt
#
# Changed but not updated:
# modified: level1/level2/test1.txt
# modified: level1/test1.txt
#
После выполнения git add level1\*.txt
добавляются неотслеживаемые (test2.txt) файлы, но не измененные (test1.txt) файлы.Я пробовал с опцией -u, экранировать и не экранировать звездочку и т. Д., Но, кажется, ничто просто не может добавить ВСЕ файлы, соответствующие шаблону, независимо от того, отслеживаются они или нет.Например, я мог бы просто добавить все файлы с -A, но имейте в виду, что это только для цели этого вопроса, в действительности будет больше файлов, и я не хотел бы добавлять их все, и иерархия состоит из нескольких папокГлубже.Единственный способ добавить отслеживаемые файлы - обратиться к указанию или записи всего шаблона, кроме имени файла, например: git add level1**.txt
ИЛИ git add level1/level2/*.txt
.
В документации git add: здесь он говорит, что шаблон файла должен работать рекурсивно и ничего не говорит о отслеживаемых или неотслеживаемых файлах, и даже приводит и пример.
Я использую msysgit, но я проверилна всякий случай в Windows и Linux.
Я просто хочу знать.Правильно ли я истолковываю документацию (потому что я думаю, что на основе документов это должно работать) или это так?Это просто не имеет смысла для меня.