Невозможно избавиться от "Изменений, не поставленных для фиксации", - программирование
Подтвердить что ты не робот

Невозможно избавиться от "Изменений, не поставленных для фиксации",

Я не могу избавиться от этого состояния, в котором мое репо, похоже, заблокировано. После выполнения reset в HEAD ~ 1 я все время получаю это уведомление об изменении этого одного файла. 'add' и 'checkout' не влияют. У меня есть core.autocrlf и core.safecrlf unset (empty).

См. ниже:

$ git --version
git version 1.7.9.6 (Apple Git-31.1)

$ git status

# 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:   a_file_name.cpp

Следующие команды (выполняемые отдельно) не влияют:

$ git checkout -- a_file_name.cpp
$ git reset a_file_name.cpp
$ git add a_file_name.cpp
$ git reset --hard
$ git clean -n
<nothing>
$ git clean -f
<nothing>

$ git status

# 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:   a_file_name.cpp

и он продолжается...

Что я сделал не так?

Ответ на предложение @Don ниже (git rm), никаких изменений, но вот как оно идет:

$ git rm 
error: 'a_file_name.cpp' has local modifications
(use --cached to keep the file, or -f to force removal)
$ git rm -f a_file_name.cpp
rm 'a_file_name.cpp'
$ git status

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    a_file_name.cpp
#
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       deleted:    a_file_name.cpp
#

$ git commit -m"tmp"
[master 2a9e054] tmp
1 file changed, 174 deletions(-)
delete mode 100644 a_file_name.cpp

$ git status
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       deleted:    a_file_name.cpp
#

Довольно много назад к sq.1

4b9b3361

Ответ 1

Убедитесь, что вы находитесь в том же каталоге, что и файл, когда вы запускаете какие-либо команды git. Кроме того, вы можете использовать относительный или абсолютный путь для файлов, используемых с командами git. Вывод из git status должен указывать подкаталог, в котором находится файл. Мне странно, что вывод, который вы опубликовали здесь, не показывает этого.

Ответ 2

git commit -a -m "message"

Параметр -a добавит все отслеживаемые файлы с изменениями

Ответ 3

Круглый путь, который работал у меня, заключается в следующем:

  • заново создайте удаляемый файл.

  • git add path/filename

  • git rm --cached path/filename

  • удалить файл

  • git add .

  • git commit --amend # if not on an already pushed branch.

Ответ 4

Вам нужны какие-либо изменения в измененном файле? git - reset по умолчанию оставляет файлы в дереве каталогов.

git reset --hard

будет reset и записывать файлы в рабочем дереве с файлами в commit.

Вы выполнили git diff после каждого из шагов, чтобы увидеть, существуют ли какие-либо изменения?