В чем разница между `git add. и в Git добавить -у`?
Я предполагал, что оба работают одинаково. Оба добавляют каждый файл в индекс. Но я, кажется, ошибаюсь.
- в чем разница между
git add .
иgit add -u
?
3 ответа:
это один из git gotchas упомянутые здесь (pre 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>
" to добавить только добавленные или измененные пути в<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
"(без pathspec) обновление индекса только для путей в текущем подкаталоге, чтобы начать обучение их пальцы, чтобы явно сказать"git add -u .
", когда они имеют в виду, прежде чем в Git 2.0 приходит.как я уже упоминал в "e"
Как говорится в руководстве:
git add .
добавит все файлы в ваш текущий каталог, в то время какgit add -u .
добавит только те, которые уже отслеживаются.