Git не будет добавлять измененный файл

Не знаю, почему это происходит:

git status
On branch master
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)
  (commit or discard the untracked or modified content in submodules)

    modified:   file (modified content)

no changes added to commit (use "git add" and/or "git commit -a")
[email protected]:~/Documents/currentWork/protection_demo$ git add --all
[email protected]:~/Documents/currentWork/protection_demo$ git status
On branch master
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)
  (commit or discard the untracked or modified content in submodules)

    modified:   file (modified content)

Независимо от того, что я делаю, git commit -am, git commit -a файл не будет добавлен в фиксацию. Любая помощь?

Ответ 1

Я думаю, что комментарий Jubobs правильный. Является ли ваш "файл" подмодулем?

Эта строка (фиксировать или отбрасывать необработанный или измененный контент в подмодулях) не должна отображаться для обычных файлов.

Вот что я получаю от статуса git:

$ git status
On branch master
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:   README.txt

no changes added to commit (use "git add" and/or "git commit -a")

Вы не увидите (зафиксируете или отмените необработанный или измененный контент в подмодулях) и (измененный контент) после моего README.txt

Поэтому вам, возможно, придется делать то, что рекомендуется git, работать над содержимым в подмодулях.

Edit: Раньше я думал, что "git add". может решить проблему, но теперь я думаю, что это невозможно.

Ответ 2

Вы можете добавлять файлы тремя способами

  • Если вы хотите добавить один файл, используйте git add filenamewithpath
  • Если вы хотите добавить несколько файлов, используйте git add.
  • за один раз вы можете добавить все файлы, и вы можете записать сообщение commit через эту команду

    git commit -a -m 'your commit message'

Ответ 3

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

Ответ 4

Не уверен, что это актуально или нет, но у меня была такая же проблема при переключении между Linux и Windows. У меня было 2 файла один WEB.config и еще один web.config, поскольку Windows не чувствительна к регистру, кажется, что она запуталась. Я переименовал файл, переименованный обратно и снова заработавший, похоже, работает.

Ответ 5

была та же проблема, не знаю, почему, но файл.h не будет совершать.

Итак, я переименовал его, этот удаленный оригинал и создал новый, насколько это было сделано. Затем я совершил эти изменения. Гит был счастлив.

Затем я просто переименовал его обратно. Снова git был счастлив совершить.

Не могу объяснить, почему это произошло, но, по крайней мере, оно было исправлено.

Ответ 6

Это случилось со мной только вчера, чувак, в моем случае, причина в том, что я пытался вызвать git из подкаталога моего проекта. Затем я использовал "git add --all", и он решил проблему, также я пошел в правильную директорию выше, и это решило проблему.

Но я не понимаю: почему в мире статус git и команда git --all работали из подкаталога? .-.

Надеюсь, что это поможет =)

Ответ 7

Подобная вещь случилась со мной. Независимо от того, что я сделал, файл оказался измененным. Рассматривая diff, он был изменен, как я сделал в предыдущем коммите. Файл всегда был изменен, даже после совершения первого раза. Наконец, я удалил файл. Принудительное удаление, которое появилось, как я удалил два файла. Затем снова добавлен файл. Довольно странная вещь, которую я никогда раньше не видел.

Ответ 8

У меня была такая же ошибка:

fatal: Cannot update paths and switch to branch 'develop' at the same time.

Затем с git status:

$ git status
warning: LF will be replaced by CRLF in .gitmodules.
The file will have its original line endings in your working directory.
On branch develop
Your branch is up-to-date with 'origin/develop'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   .gitmodules
        new file:   submodule_dir

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)
  (commit or discard the untracked or modified content in submodules)

        modified:   submodule_dir (modified content)

и git diff показали:

$ git diff
diff --git a/somedir b/somedir
--- a/somedir
+++ b/somedir
@@ -1 +1 @@
-Subproject commit some-commit-hash
+Subproject commit some-commit-hash-dirty

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

Ответ 9

Другой вариант заключается в том, что тот же самый файл находится в тайнике и находится в конфликте с текущей копией.

Если это так, git stash drop - сбросит тайник (с конфликтом файла) и позволит вам добавить измененный файл в индекс.

Ответ 10

git reset .

Это помогло мне. удаление всех файлов, которые были готовы для фиксации файла (измененного содержимого)

Ответ 11

Возьмите резервную копию проблемных файлов. Удалите этот набор файлов, зафиксируйте удаление, нажмите один раз на исходное.

Добавьте обратно файлы из резервной копии и введите новое добавление, фиксацию и нажатие. Проблема будет решена.