Ik ging ervan uit dat beide op dezelfde manier werken. Beide voegen elk bestand toe aan index. Maar ik heb het mis.
- Wat is het verschil tussen
git add .
engit add -u
?
Antwoord 1, autoriteit 100%
Het is een van de git gotcha’s die hier worden genoemd (pre Git 2.0).
git add .
voegt alleen toe wat er is, niet wat is verwijderd (indien bijgehouden).
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
zou voor beide stappen zorgen…
Met Git 2.0 , git add -A
is standaard.
git add <path>
is nu hetzelfde als “git add -A <path>
“, zodat
“git add dir/
” zal paden opmerken die je uit de directory hebt verwijderd en
noteer de verwijdering.
In oudere versies van Git werd “git add <path>
” gebruikt om verwijderingen te negeren.Je kunt “
git add --ignore-removal <path>
” zeggen tegen
voeg alleen toegevoegde of gewijzigde paden toe in<path>
, als je dat echt wilt.
Waarschuwing (git1.8.3 april 2013, voor aankomende git2.0).
Ik heb mijn antwoord aangepast om git add -u .
te zeggen, in plaats van git add -u
.:
git add -u
werkt op de hele boomin Git 2.0 voor consistentie met “git commit -a
” en andere commando’s.
Omdat er geen mechanisme zal zijn om “git add -u
” zich te laten gedragen als “git add -u .
“, is het
belangrijk voor degenen die gewend zijn om “git add -u
” (zonder pathspec) de index alleen bij te werken voor paden in de huidige submap om hun vingers te trainen om expliciet “git add -u .
” als ze het menen voordat Git 2.0 komt.
Zoals ik al zei in “e“
Antwoord 2, autoriteit 32%
Zoals de handleiding zegt: git add .
zal alle bestanden in de huidige directory toevoegen, terwijl git add -u .
alleen die bestanden toevoegt die al worden bijgehouden.
p>
Antwoord 3, autoriteit 18%
git add .
voeg alle bestanden toe uit de huidige map
git add -u
update alleen bestanden die momenteel worden bijgehouden.