В чем разница между `git add .` и`git add -u`?
Я предполагал, что оба работают одинаково. Оба добавляют каждый файл в индекс. Но я, похоже, ошибаюсь.
- В чем разница между
git add .
а такжеgit add -u
?
3 ответа
Это одна из мерзавцев, упомянутых здесь (до Git 2.0).
git add .
добавляет только то, что есть, а не то, что было удалено (если отслежено).
git add .
git commit
git status
//hey! why didn't it commit my deletes?, Oh yeah, silly me
git add -u .
git commit --amend
git add -A
позаботится об обоих шагах...
С Git 2.0, git add -A
по умолчанию.
git add <path>
такой же как "git add -A <path>
"сейчас, так что"git add dir/
"заметит пути, которые вы удалили из каталога, и запишет удаление.
В старых версиях Git "git add <path>
"раньше игнорировал удаления.Ты можешь сказать "
git add --ignore-removal <path>
"добавлять только добавленные или измененные пути в<path>
, если вы действительно хотите.
Предупреждение ( git1.8.3 Апрель 2013, для предстоящего git2.0).
Я изменил свой ответ, чтобы сказать git add -u .
, вместо git add -u
.:
git add -u
будет работать со всем деревом в Git 2.0 для соответствияgit commit -a
и другие команды.
Потому что не будет никакого механизма, чтобы сделать "git add -u
"вести себя как"git add -u .
"Это важно для тех, кто привык"git add -u
"(без указания пути) обновление индекса только для путей в текущем подкаталоге, чтобы начать тренировать свои пальцы явно говорить"git add -u .
"когда они имеют в виду это до Git 2.0.
Как я уже упоминал в " е "
Как сказано в руководстве: git add .
добавит все файлы в текущем каталоге, а git add -u .
будет добавлять только те, которые уже отслеживаются.
мерзавец добавить документацию
git add .
добавить все файлы из текущего каталога
git add -u
только файлы обновлений, которые отслеживаются в данный момент.