Почему 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