Недавно я обновил Git до версии 2.7.2.windows.1
(у меня 64-разрядная версия Windows 7). После обновления мне не удалось запустить git add
с параметром -p
для файлов в определенном каталоге (или его подкаталогах), имя которого _
(знак подчеркивания).
git status
правильно сообщает, что в моем файле есть изменения:
PS C:\Users\Carl\www\dl> git status
On branch develop
Your branch is up-to-date with 'origin/develop'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: _/php/class.Menu.php
И я могу добавить весь файл простым git add
, или указав файл по имени. Но если я попытаюсь включить опцию -p
или --patch
(оба варианта дают одинаковые результаты), Git сообщит, что изменений нет:
PS C:\Users\Carl\www\dl> git add -p .\_\php\class.Menu.php
No changes.
Это происходит только для файлов в каталоге _
, но не имеет значения, cd
ли я вхожу в этот каталог, чтобы запустить команду git add
без необходимости явно указывать путь со знаком подчеркивания; это все еще не работает:
PS C:\Users\Carl\www\dl\_\php> git add -p .\class.Menu.php
No changes.
Первоначально я думал, что эта проблема связана с аналогичной проблемой, с которой я недавно столкнулся в файлах в каталоге _
, о котором я спрашивал здесь. Однако эта проблема, по-видимому, связана с преобразованием пути Posix в MinGW, тогда как эта проблема возникает независимо от того, использую ли я Git Bash, Windows PowerShell или cmd.exe.
Как я сказал в предыдущем вопросе, я считаю, что символы подчеркивания допустимы в именах файлов/каталогов. Кроме того, я не являюсь владельцем проекта, поэтому не могу переименовать каталог или переместить файл.
Это ошибка в Git? Могу ли я предпринять какие-либо дополнительные шаги, чтобы определить основную проблему?
.gitignore
? - person Sulthan   schedule 12.03.2016git add -p ./_/php/class.Menu.php
. В bash \ — это escape-символ, а не разделитель каталогов. Дайте мне знать, если это поможет или нет, пожалуйста. - person jpmc26   schedule 12.03.2016