git commit -a означает почти [*] то же самое, что и git add -u && git commit.
Это не то же самое, что git add ., так как это добавит ненужные файлы, которые не игнорируются, git add -u выполняет только этап изменений (включая удаления) уже отслеженных файлов.
[*] Там тонкая разница, если вы не находитесь в корневом каталоге вашего репозитория. git add -u обновляет файлы в текущем каталоге и ниже, это эквивалентно git add -u ., тогда как git commit -a этапы и фиксирует изменения во всех отслеживаемых файлах.
Ответ 2
git commit -a автоматически вызывает git add для всех файлов, о которых он знает. Вы можете использовать git add для выбора файлов для фиксации. Подробнее см. В документах: здесь
Ответ 3
С помощью переключателя git commit -a с командой commit для автоматического "добавления" изменений из всех известных файлов (т.е. всех файлов, которые уже перечислены в индексе)