Git commit -a "неотслеживаемые файлы"? - PullRequest
68 голосов
/ 12 декабря 2011

Когда я делаю git commit -a, я вижу следующее:

  # Please enter the commit message for your changes. Lines starting
  # with '#' will be ignored, and an empty message aborts the commit.
  # On branch better_tag_show
  # Changes to be committed:
  #   (use "git reset HEAD <file>..." to unstage)
  #
  # modified:   ../assets/stylesheets/application.css
  # modified:   ../views/pages/home.html.erb
  # modified:   ../views/tags/show.html.erb
  # modified:   ../../db/seeds.rb
  #
  # Untracked files:
  #   (use "git add <file>..." to include in what will be committed)
  #
  # ../assets/stylesheets/
  # ../views/pages/

Что означают эти неотслеживаемые файлы?Все изменения были действительно отслежены.Я не понимаю, почему Git предупреждает меня о неотслеживаемых файлах здесь.

РЕДАКТИРОВАТЬ :

Хорошо, я вижу много запутанных ответов.Это то, что происходит после того, как я git commit -a это.

# On branch master
nothing to commit (working directory clean)

Как видите, НИЧЕГО, кроме тех четырех файлов, к которым применены изменения.

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

Другими словами, - это предупреждение о неотслеживании в сообщении git commit ненужный

Ответы [ 6 ]

83 голосов
/ 26 марта 2014

Для тех, у кого возникла такая же проблема, попробуйте запустить

git add ., чтобы добавить все файлы текущего каталога для отслеживания (включая неотслеживаемые), а затем использовать

git commit -a для подтверждениявсе отслеживаемые файлы.

Как подсказывает @Pacerier, один лайнер, который делает то же самое, это

git add -A

27 голосов
/ 12 декабря 2011

git commit -am "msg" - это не то же самое, что git add file и git commit -m "msg"

Если у вас есть файлы, которые никогда не были добавлены в git-трекинг, вам все равно нужно сделать git add file

Команда «git commit -a» является ярлыком для двухэтапного процесса.После того, как вы изменили файл, который уже известен репо, вы все равно должны сказать репо: «Эй!Я хочу добавить это в промежуточные файлы и в конечном итоге передать это вам ». Это делается с помощью команды« git add ».«Git commit -a» ставит файл и фиксирует его за один шаг.

Источник: «git commit -a» и «git add»

7 голосов
/ 03 апреля 2017
  1. Сначала вам нужно добавить все неотслеживаемые файлы.Используйте эту командную строку:

    git add *

  2. Затем выполните коммит с использованием этой командной строки:

    git commit -a

6 голосов
/ 16 мая 2016

Вы должны ввести в командной строке

git add --all

Это подтвердит все неотслеживаемые файлы

2 голосов
/ 28 апреля 2019

Если у вас проблемы с неотслеживаемыми файлами, этот трехстрочный скрипт поможет вам.

git rm -r --cached .
git add -A
git commit -am 'fix'

Тогда просто git push

1 голос
/ 12 декабря 2011

Как следует из названия, «неотслеживаемые файлы» - это файлы, которые не отслеживаются git.Они не находятся в вашей области подготовки и не были частью каких-либо предыдущих коммитов.Если вы хотите, чтобы они были версионными (или управлялись git), вы можете сделать это, сказав 'git' с помощью 'git add'.Посмотрите эту главу Запись изменений в репозитории в книге Progit , в которой используется приятное визуальное представление, дающее хорошее объяснение записи изменений в git repo, а также объяснение терминов «отслеживается» и «неотслеживаемый '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...