2010-08-22 3 views

ответ

99

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

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

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

+2

поведение в [*] изменится в git 2.0, для согласованности. – user1284631

+2

В каком направлении? то есть будет commit -a станет как add -u, или добавит -u станет как commit -a? –

+3

@MilesRout: 'git add -u' станет как' git commit -a'; вам нужно будет явно сказать «git add -u.», если это то, что вы имеете в виду. –

13

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

+8

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

+0

@Nikana Reklawyks У вас есть определение «добавить» неправильно. Добавить не означает то же самое, что и в svn. Все, что он делает, это обновление индекса. [Извините за медленный ответ, я не помню, чтобы получать уведомление для этого комментария] – alternative

+1

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