Я прочитал каждый пост здесь о похожих проблемах, но ни одна из них не похожа на мою.
В моем случае я сделал простое изменение одной строки в одном из моих файлов и хотел зафиксировать свои измененияно заметил, что commit -am "" не добавил / не подтвердил файл.
После выдачи git ls-files --stage
, я вижу, вероятно, все файлы в моем проекте отображаются как дубликаты.Вот пример одного из файлов
100644 6314bd3f89d1b794c6d8c0fb9bb4aa492e2d510a 0 SquirrelFoH/Squirrel.FoH.ViewModels/UserLoginViewModel.cs
100644 6314bd3f89d1b794c6d8c0fb9bb4aa492e2d510a 0 SquirrelFoH/Squirrel.FoH.ViewModels/UserLoginViewModel.cs
Интересно, что некоторые из файлов, показывающих дубликаты объявлений, не были изменены мной вообще, некоторые, но тем не менее, они отображаются как дубликаты и, как вы можете видеть ниже,дело не в том, как в других постах SO здесь.
ОБНОВЛЕНИЕ
Хотя это не решает мою проблему, описанную выше, это помогло мне использовать git reset --hard HEAD~1
который сбрасывает указатель HEAD на 2-й последний коммит, который является коммитом, который сработал.Я использую --hard
выше, чтобы отменить последний коммит, так как это вызвало проблему для меня выше.Если вам нужно сохранить эти изменения, вместо этого используйте --soft
, чтобы сбросить HEAD в ваш коммит перед последним коммитом и добавить изменения в последнем коммите в промежуточную область.
git reset --hard HEAD~1
git reset --hard HEAD~2
git reset --hard HEAD~3
...
Над командами сбрасывать указатель HEAD 1, 2,3, ... фиксирует до последнего коммита и отменяет любые изменения после.Используйте --soft
вместо --hard
, если вы не хотите отменять эти изменения, и в этом случае эти изменения будут подготовлены для вас.
Это ситуация, которая у меня была.Ниже, последний коммит - это коммит А, который содержит дубликаты, которые начали появляться после последнего изменения удаленных изменений в моей локальной ветке.Коммиты B, C, ... являются коммитами перед коммитом A:
commit A
commit B - git reseat --hard HEAD~1
commit C
, теперь мой последний коммит - коммит B, в котором нет дубликатов.Теперь я могу попытаться снова объединиться и посмотреть, возникнет ли у меня та же проблема, что и с коммитом A. Как я уже говорил, это не решает проблему, но, по крайней мере, позволяет мне попытаться воссоздать ее или продолжить свою работу и разобраться собъединить позже.