Git добавить. vs git commit -a

Какая разница между:

  • git add .
  • git commit -a

Должен ли я делать оба, или это избыточно?

Ответ 1

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 для автоматического "добавления" изменений из всех известных файлов (т.е. всех файлов, которые уже перечислены в индексе)