Я припускав, що обидва працюють однаково. Обидва файли додають кожен файл до індексу. Але я, здається, помиляюся.
- Яка різниця між
git add .таgit add -u?
Відповіді:
Це один із git gotchas, згаданих тут (до 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.
Як я вже згадував у " е "
.(pathspec) з Git 2.x. Це працює знайти, коли я тестував.
git add .додає всі зміни до індексу, оскільки -Aпараметр є типовим. Перевірте цей відповідь stackoverflow.com/a/26343584/524588
Як в інструкції сказано: git add . додасть усі файли в поточному каталозі, тоді як git add -u .додасть лише ті, які вже відстежуються.
add -uтакож буде інсценувати видалення.
git add .
додати всі файли з поточного каталогу
git add -u
лише файли оновлення, які відстежуються в даний час.