Почему git commit -a не добавляет новые файлы?

Я немного новичок в Git, и я не понимаю, почему git commit -a только измененные этапы и удаленные файлы, но не новые файлы.

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

Кстати, hg commit -A добавляет как новые, так и удаленные файлы в коммит

5 ответов

Git о отслеживании изменений. Он полагается на то, что вы сообщаете ему, какие файлы достаточно важны для отслеживания. Вы можете достичь желаемого эффекта следующим образом:

git add . ;git commit -a

Убедитесь, что ваш .gitignore Файл обновлен.

Я предлагаю другое решение: используя git commit --interactive -m "your commit message" покажет вам это меню

*** Commands ***
  1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked
  5: [p]atch      6: [d]iff   7: [q]uit   8: [h]elp

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

Я подозреваю, что ответ прост (но я сомневаюсь, что буду популярен, если скажу это!) - вероятно, нет никакого преднамеренного "почему", за исключением того, как это выпало, когда разработчики реализовали это. Приоритетом проекта Git никогда не было простота использования или удобство для пользователя.

Келли прав, но я думаю, что еще одним фактором является то, что так много людей ожидают такого поведения, потому что CVS, Subversion и большинство других инструментов делают это именно так.

Если Git зафиксировал новые файлы, вы можете заметить, что вы зафиксировали .o файлы давно и даже хуже, они могут повредить сборку.

Ради будущего вы можете придерживаться этого решения от Ian Clelland,

git add -A && git commit -m "Your Message"

Так как это не будет слишком видно из комментария /questions/31152910/kak-ya-mogu-podgotovit-i-zafiksirovat-vse-fajlyi-vklyuchaya-vnov-dobavlennyie-s-pomoschyu-odnoj-komandyi/31152923#31152923

Другие вопросы по тегам