По какой-то причине Git сообщает мне, что у меня есть файл, который одновременно «должен быть зафиксирован» и «не подготовлен для фиксации»? Это не имеет смысла:
% git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: Dir1/Dir2/filename.cpp
#
# 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: Dir1/Dir2/filename.cpp
Dir1
, Dir2
и filename.cpp
определенно являются одним и тем же файлом. Мне пришлось снова добавить filename.cpp
, чтобы оно отображалось как изменение, которое нужно зафиксировать (после того, как оно изначально было в репозитории). Единственное, что могло вызвать проблему, это то, что я спрятал pull --rebase
, а затем вытащил тайник
? .gitignore
нигде не перечисляет Dir1
, Dir2
или filename.cpp
, и шаблоны не предполагают, что они поймают этот файл?