git add. vs git commit -a


Respostas:


139

git commit -asignifica quase [*] a mesma coisa que git add -u && git commit.

Não é o mesmo git add .que adicionar arquivos não git add -urastreados que não estão sendo ignorados, apenas altera as etapas (incluindo exclusões) em arquivos já rastreados.

[*] Há uma diferença sutil se você não está no diretório raiz do seu repositório. git add -uorganiza atualizações para arquivos no diretório atual e abaixo, é equivalente a git add -u .enquanto git commit -aprepara e confirma mudanças em todos os arquivos rastreados.


3
O comportamento em [*] mudará no git 2.0, para consistência.
user1284631

2
Em que direção? isto é, o commit -a ficará como add -u, ou o add -u ficará como commit -a?
Miles Rout

5
@MilesRout: git add -uficará como git commit -a; você precisará dizer explicitamente git add -u .se é isso que você quer dizer.
CB Bailey,

Isso é absolutamente o mesmo desde Git v 2.0, onde git add .se comporta de uma maneira diferente.
Nick Volynkin

13

git commit -ainvoca automaticamente git addem todos os arquivos que conhece. Você pode usar git addpara selecionar quais arquivos enviar. Consulte a documentação para mais informações: aqui


11
todos os arquivos que ele conhece não são muito claros para mim, especialmente porque eles NÃO foram adicionados
Nikana Reklawyks,

1
@alternative, ainda assim, esta resposta pode ser melhor se você adicionar um esclarecimento para "todos os arquivos que conhece" .....
Pacerier

2
@Pacerier equivalente agit add -u
alternativa

2
@ Z.Khullah, então "todos (...)" significa "arquivos rastreados"?
TheFrost

1
@TheFrost precisamente!
Z. Khullah

1

Usando a opção git commit -a com o comando commit para "adicionar" automaticamente as alterações de todos os arquivos conhecidos (ou seja, todos os arquivos que já estão listados no índice)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.