Hai aggiunto tutti i file modificati, cancellati e non monitorati?


256

Esiste un modo per aggiungere tutti i file, indipendentemente da ciò che si fa a loro se devono essere eliminati, non tracciati, ecc.? come per un impegno. Non voglio semplicemente dovere git addo git rmtutti i miei file ogni volta che commetto, specialmente quando lavoro su un prodotto di grandi dimensioni.


Risposte:


307

Provare:

git add -A

Avvertenza: a partire da git 2.0 (metà 2013), questo metterà sempre in scena i file sull'intero albero di lavoro .
Se si desidera mettere in scena i file nel percorso corrente dell'albero di lavoro, è necessario utilizzare:

git add -A .

Vedi anche: Differenza di git add -Aegit add .


questo non ha funzionato per me ... come posso mostrare il mio input-output del terminale in questa discussione? copia-incolla il mio output del terminale come risposta a questa discussione?
Rakib,

ecco il problema che sto affrontando - stackoverflow.com/q/7726131/636762 - gentilmente aiutami su questo per favore
Rakib,

Questo non può funzionare anche se la tua versione di git è vecchia. Stavo eseguendo uno script su un server che eseguiva git 1.5.2.5. git add -A non funzionava. Dallo script non è stato segnalato alcun messaggio di errore. Solo dalla riga di comando ho scoperto che -A non era un'opzione legale da aggiungere.
Eponimo

ma perché devo aggiungere file ogni volta che voglio fare un commit !? Ogni volta che ho apportato modifiche a un file, devo aggiungerlo ...
Frade,

3
Ecco come funziona Git. È necessario aggiungere modifiche all'area di gestione temporanea prima di impegnarla. Ad esempio, è possibile aggiungere solo alcuni file a un commit e fornire commenti per esso, anziché tutti i file in qualsiasi momento. Ecco una comoda spiegazione di ciò che sta facendo e perché: gitready.com/beginner/2009/01/18/the-staging-area.html
Kilanash

75

Provare

git add -u

L' uopzione " " sta per aggiornamento. Ciò aggiornerà il repository ed eliminerà effettivamente i file dal repository che sono stati eliminati nella copia locale.

git add -u [filename]

per impostare un'eliminazione su un solo file. Una volta premuto, il file non sarà più nel repository.

In alternativa,

git add -A .

è equivalente a

git add .

git add -u .

Nota il extra "." sopragit add -A egit add -u


Avvertenza: a partire da git 2.0 (metà 2013), questo metterà sempre in scena i file sull'intero albero di lavoro .
Se si desidera mettere in scena i file nel percorso corrente dell'albero di lavoro, è necessario utilizzare:

git add -A .

Vedi anche: Differenza di git add -Aegit add .


42

La seguente risposta si applica solo a Git versione 1.x, ma a Git versione 2.x.

Tu vuoi git add -A:

git add -A tutte le fasi;

git add . mette in scena nuovi e modificati, senza cancellati;

git add -u fasi modificate ed eliminate, senza nuove.


Nota quanto sopra vale solo per Git 1.x. Per git versione 2.x, git add -Aè equivalente a git add .. Vedi qui per ulteriori discussioni.
jdhao,

27

git add --all o git add -A o git add -A . Fasi Tutto

git add . Fasi nuove e modificate ma senza eliminazioni

git add -u Fasi modificate ed eliminate ma senza novità

git commit -aMezzi git add -uEgit commit -m "message"

Dopo aver scritto questo comando, segui questi passaggi: -

  1. stampa i
  2. scrivi il tuo messaggio
  3. stampa esc
  4. stampa :wq
  5. stampa enter

git add <list of files> aggiungi un file specifico

git add *.txt aggiungi tutti i file txt nella directory corrente

git add docs/*/txt aggiungi tutti i file txt nella directory dei documenti

git add docs/ aggiungi tutti i file nella directory dei documenti

git add "*.txt"o git add '*.txt'aggiungi tutti i file nell'intero progetto


12

Non sono sicuro se aggiungerà i file eliminati, ma git add .dalla radice verranno aggiunti tutti i file non monitorati.


vedi la mia risposta su come aggiungere file cancellati
Matt Kneiser,

5

Questa è la mia alternativa (in qualsiasi bash):

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

Resettare

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

5

Ho creato il progetto G2, un ambiente amichevole per l'amante della riga di comando git.
Ottieni il progetto da github - G2 https://github.com/orefalo/g2

Ha un sacco di comandi utili, uno di questi è esattamente quello che stai cercando: freeze

blocco : consente di bloccare tutti i file nel repository (aggiunte, eliminazioni, modifiche) nell'area di gestione temporanea, mettendo in scena quel contenuto per l'inclusione nel prossimo commit. Accetta anche un percorso specifico come parametro


5

Per la versione più recente di Git.

Ho provato git add -Ae questo ha richiesto,

attenzione: il comportamento di 'git add --all (o -A)' senza argomento path da una sottodirectory dell'albero cambierà in Git 2.0 e non dovrebbe più essere usato. Per aggiungere contenuto per l'intero albero, eseguire:

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

Per limitare il comando alla directory corrente, eseguire:

git add --all. (o git aggiungi -A.)

Con l'attuale versione di Git, il comando è limitato alla directory corrente.


Poi ho provato di seguito, che ha funzionato .

git add --all :/

3

Dalla documentazione Git a partire dalla versione 2.0:

Per aggiungere contenuto per l'intero albero, eseguire:

git add --all :/

o

git add -A :/

Per limitare il comando alla directory corrente, eseguire:

git add --all .

o

git add -A .

2

Uso la seguente riga per aggiungere per la gestione temporanea di tutti i file modificati e appena creati, esclusi quelli elencati in .gitignore:

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

(la sintassi $ () è per la shell bash). Immagino che l'opzione della riga di comando -mod dovrebbe aggiungere anche i file eliminati ... O, se hai nomi di file con spazi vuoti incorporati, il seguente one-liner dovrebbe fare il trucco:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.