git add. против git commit -a


Ответы:


139

git commit -aозначает почти [*] то же самое, что и git add -u && git commit.

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

[*] Есть небольшая разница, если вы не находитесь в корневом каталоге вашего репозитория. git add -uэтапы обновление файлов в текущем каталоге и ниже, это эквивалентно git add -u .а git commit -aэтапы и фиксируют изменения в все отслеживаемые файлы.


3
Поведение в [*] изменится в git 2.0 для единообразия.
user1284631

2
В каком направлении? то есть коммит -a станет как add -u, или add -u станет как commit -a?
Miles Rout

5
@MilesRout: git add -uстанет похожим git commit -a; вам нужно будет прямо сказать git add -u ., что вы имеете в виду.
CB Bailey,

Это абсолютно то же самое, поскольку Git v 2.0 git add .ведет себя по-другому.
Николай Волынкин

13

git commit -aавтоматически вызывает git addвсе файлы, о которых он знает. Вы можете использовать git addдля выбора файлов для фиксации. Дополнительную информацию см. В документации: здесь


11
мне очень непонятны все файлы, о которых он знает , тем более что они якобы НЕ были добавлены
Никана Реклавикс

1
@alternative, Тем не менее, этот ответ может быть лучше, если вы добавите пояснение для «всех файлов, о которых он знает» .....
Pacerier

2
@Pacerier эквивалентgit add -u
альтернатива

2
@ Z.Khullah, значит "все (...)" означает "отслеживаемые файлы"?
TheFrost

1
@TheFrost точно!
Z. Khullah

1

Используя переключатель git commit -a с командой commit для автоматического «добавления» изменений из всех известных файлов (то есть всех файлов, которые уже перечислены в индексе)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.