Я предполагал, что оба работают одинаково. Оба добавляют каждый файл в индекс. Но я, кажется, ошибаюсь.
- Какая разница между
git add .
иgit add -u
?
Я предполагал, что оба работают одинаково. Оба добавляют каждый файл в индекс. Но я, кажется, ошибаюсь.
git add .
и git add -u
?Это один из 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>
", чтобы добавьте только добавленные или измененные пути в<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 .
добавит только те, которые уже отслеживаются.
git add .
добавить все файлы из текущего каталога
git add -u
только отслеживаемые файлы обновлений.