Невозможно reset создать файл для конкретной фиксации с помощью Git

У меня есть модифицированный файл, который я хочу использовать для того, что находится в последней фиксации, но оно "застревает", всегда помеченное как измененное.

$ 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:   index.php
#
no changes added to commit (use "git add" and/or "git commit -a")

Затем я попробую:

$git checkout -- index.php

Но вывод состояния git остается прежним. Затем я пытаюсь:

$git reset --hard master
HEAD is now at 02c9613 test commit message

И вывод состояния git равно STILL.

Любые идеи о том, как я могу избавиться от предполагаемых изменений в этом файле?

Ответ 1

Возможно, вы столкнулись с проблемой , попробуйте git config --global apply.whitespace nowarn для этого.

Если это не сработает, я бы сказал, что вы столкнулись с ошибкой. Сохраните локальный клон для дальнейшего использования (надеюсь, он не слишком большой) и создайте отчет об ошибке. Особенно факты, которые:

  • вы сами не модифицировали файл
  • Другие файлы не отображают эту проблему.

являются признаками того, что это может быть не так, что вы допустили ошибку здесь. Если вы можете воспроизвести проблему на чистом репо, также будет интересной информация.

Ответ 3

Вы пробовали:

$ git checkout master -f -- index.php

или

$ git checkout master -f

?

Я не понимаю, почему это сработает, если reset нет, но стоит попробовать.

Ответ 4

попробуйте git ls-files -m | xargs -i git update-index --assume-unchanged "{}"

Ответ 5

FWIW, я смог решить проблему, удалив подкаталоги .git в каталогах, которые показывали измененные. Когда подкаталоги .git(так как подкаталоги были .git-проектами сами по себе) исчезли, родительские папки больше не отображались. Если файлы находятся в той же папке, что и несвязанная папка .git, это может также иметь эффект.

Ответ 6

Я застрял в таком же беспорядке. У меня были некоторые файлы, с которыми я просто не мог избавиться в git status. После попытки reset или проверки файлов каким-либо образом я решил фактически добавить проблемные файлы и зафиксировать их. Git показалось ему довольным. Затем я вернулся к предыдущей фиксации и проблема была решена, проблемные файлы действительно исчезли.

Это не объясняет ошибку, но если это решение может решить проблему, это хорошо.