git add. vs git commit -a


Відповіді:


139

git commit -aозначає майже [*] те саме, що і git add -u && git commit.

Це не те саме, git add .що це додало б git add -uвідслідковуваних файлів , які не ігноруються, лише стадіює зміни (включаючи видалення) до вже відстежуваних файлів.

[*] Існує незначна різниця, якщо ви не знаходитесь в кореневій директорії вашого сховища. git add -uетапи оновлення файлів у поточному каталозі та нижче, це еквівалентно git add -u .тоді, як git commit -aетапи та вносити зміни до всіх відстежуваних файлів.


3
Поведінка в [*] зміниться в git 2.0 для послідовності.
користувач1284631

2
У якому напрямку? тобто скоїться -а стане як add -u, або add -u стане схожим на commit -a?
Майлз Рут

5
@MilesRout: git add -uстане схожим git commit -a; вам потрібно буде чітко сказати, git add -u .якщо це саме ви маєте на увазі.
CB Bailey

Це абсолютно те саме, що і Git v 2.0, де git add .поводиться по-іншому.
Нік Волинкін

13

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


11
всі файли, про які вона знає , дуже незрозумілі для мене, тим більше, що їх нібито НЕ додано
Nikana Reklawyks

1
@alternative, Однак ця відповідь може стати кращою, якщо ви додасте пояснення до "всіх файлів, про які вона знає" .....
Pacerier

2
@Pacerier еквівалентноgit add -u
альтернатива

2
@ Z.Khullah, значить "all (...)" означає "відслідковувані файли"?
TheFrost

1
@TheFrost точно!
З. Хулла

1

За допомогою перемикача git commit -a з командою commit автоматично "додавати" зміни з усіх відомих файлів (тобто всіх файлів, які вже вказані в індексі)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.