O Git adiciona todos os arquivos modificados, excluídos e não rastreados?


256

Existe uma maneira de adicionar todos os arquivos, não importa o que você faça com eles, sejam eles excluídos, não rastreados, etc? como para um commit. Eu só não quero ter git addou git rmtodos os meus arquivos toda vez que eu confirmar, especialmente quando estou trabalhando em um produto grande.


Respostas:


307

Experimentar:

git add -A

Aviso: A partir do git 2.0 (meados de 2013), isso sempre preparará arquivos em toda a árvore de trabalho .
Se você deseja preparar arquivos sob o caminho atual da sua árvore de trabalho, precisará usar:

git add -A .

Veja também: Diferença de git add -Aegit add .


isso não funcionou para mim ... como posso mostrar minha entrada e saída de terminal nesta discussão? copiar e colar minha saída do terminal como resposta a esta discussão?
Rakib

aqui é o problema que estou enfrentando - stackoverflow.com/q/7726131/636762 - me ajuda gentilmente em um presente por favor
Rakib

Isso também não pode funcionar se sua versão do git for antiga. Eu estava executando um script em um servidor executando o git 1.5.2.5. O git add -A não estava funcionando. Do script, nenhuma mensagem de erro foi relatada. Somente na linha de comando eu descobri que -A não era uma opção legal para adicionar.
Eponymous

mas por que tenho que adicionar arquivos toda vez que eu quero confirmar? Toda vez que eu fez alterações a um arquivos para eu preciso adicioná-lo ..
Frade

3
É assim que o Git funciona. Você precisa adicionar alterações à sua área de preparação antes de enviá-la. Por exemplo, você pode adicionar apenas alguns arquivos a uma confirmação e fornecer comentários, em vez de todos os arquivos o tempo todo. Aqui está uma explicação útil de que isso está fazendo e por quê: gitready.com/beginner/2009/01/18/the-staging-area.html
Kilanash

75

Experimentar

git add -u

A uopção " " significa atualização. Isso atualizará o repositório e realmente excluirá os arquivos do repositório que você excluiu na sua cópia local.

git add -u [filename]

para preparar uma exclusão para apenas um arquivo. Uma vez enviado, o arquivo não estará mais no repositório.

Alternativamente,

git add -A .

é equivalente a

git add .

git add -u .

Observe o extra '.' em git add -Aegit add -u


Aviso: A partir do git 2.0 (meados de 2013), isso sempre preparará arquivos em toda a árvore de trabalho .
Se você deseja preparar arquivos sob o caminho atual da sua árvore de trabalho, precisará usar:

git add -A .

Veja também: Diferença de git add -Aegit add .


42

A resposta a seguir se aplica apenas ao Git versão 1.x, mas ao Git versão 2.x.

Você quer git add -A:

git add -A estágios Tudo;

git add . estágios novos e modificados, sem excluídos;

git add -u estágios modificados e excluídos, sem novos.


Observe que o descrito acima se aplica apenas ao Git 1.x. Para a versão 2.x do git, git add -Aé equivalente a git add .. Veja aqui para mais discussões.
jdhao 23/04

27

git add --all ou git add -A ou git add -A . etapas

git add . Estágios novos e modificados, mas sem excluídos

git add -u Etapas modificadas e excluídas, mas sem novas

git commit -aMeios git add -uegit commit -m "message"

Após escrever este comando, siga estas etapas: -

  1. pressione i
  2. escreva sua mensagem
  3. pressione esc
  4. pressione :wq
  5. pressione enter

git add <list of files> adicionar arquivo específico

git add *.txt adicione todos os arquivos txt no diretório atual

git add docs/*/txt adicione todos os arquivos txt no diretório docs

git add docs/ adicione todos os arquivos no diretório docs

git add "*.txt"ou git add '*.txt'adicione todos os arquivos em todo o projeto


12

Não tenho certeza se ele adicionará arquivos excluídos, mas a git add .partir da raiz adicionará todos os arquivos não rastreados.


veja a minha resposta sobre como adicionar arquivos apagados
Matt Kneiser

5

Esta é a minha alternativa (em qualquer bash):

$ git status -s|awk '{ print $2 }'|xargs git add

Reiniciar

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD

5

Eu criei o projeto G2, um ambiente amigável para o amante do git da linha de comando.
Obtenha o projeto no github - G2 https://github.com/orefalo/g2

Possui vários comandos úteis, sendo um deles exatamente o que você está procurando: freeze

congelar - Congele todos os arquivos no repositório (adições, exclusões, modificações) na área de preparação, preparando o conteúdo para inclusão na próxima confirmação. Aceite também um caminho específico como parâmetro


5

Para a versão mais recente do Git.

Eu tentei git add -Ae isso levou,

aviso: O comportamento de 'git add --all (ou -A)' sem argumento de caminho de um subdiretório da árvore será alterado no Git 2.0 e não deverá mais ser usado. Para adicionar conteúdo para a árvore inteira, execute:

git add --all: / (ou git add -A: /)

Para restringir o comando ao diretório atual, execute:

git add --all. (ou git add -A.)

Com a versão atual do Git, o comando é restrito ao diretório atual.


Então eu tentei abaixo do que funcionou .

git add --all :/

3

Da documentação do Git a partir da versão 2.0:

Para adicionar conteúdo para a árvore inteira, execute:

git add --all :/

ou

git add -A :/

Para restringir o comando ao diretório atual, execute:

git add --all .

ou

git add -A .

2

Eu uso a seguinte linha para adicionar para a preparação de todos os arquivos modificados e recém-criados, excluindo os listados em .gitignore:

git add $(git ls-files -mo --exclude-standard)

(a sintaxe $ () é para o shell bash). Eu acho que a opção de linha de comando -mod deve adicionar também os arquivos excluídos ... Ou, se você tiver nomes de arquivos com espaços em branco incorporados, a seguinte lista deverá fazer o truque:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
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.