Git: modifiche non staging quando si usa git add * -A

Nov 18 2020

In qualche modo, un file .iml si è fatto strada nel mio repository git ...

Ecco come sto cercando di sbarazzarmene:

  1. Ho clonato l'ultima versione in una cartella locale
  2. Ho controllato il ramo che voglio unire in seguito nel master
  3. Eliminato myproject.iml (utilizzando l'interfaccia grafica di Windows)
  4. modificato .gitignore con riga aggiuntiva: *.iml
  5. Cercando di mettere in scena i cambiamenti: git add * -A
  6. Cercando di impegnarsi: git commit -m"untrack .iml file and ignore for future commits"

Problema:

On branch mybranch
Changes not staged for commit:
    modified:   .gitignore
    deleted:    myproject.iml

no changes added to commit

Perché non sono messi in scena per il commit? Pensavo -Ache anche le cancellazioni sarebbero state organizzate? E inoltre, in qualche modo, pensavo che le modifiche (come quella che ho fatto a .gitignore) vengano aggiunte all'area di staging senza parametri particolari?

È strano perché poco prima ho impegnato un enorme 20 file per tutta la notte, con modifiche, eliminazioni, aggiunte, branch in branch, tutte le chicche, senza problemi - usando la stessa identica procedura!

Risposte

3 VonC Nov 18 2020 at 14:53

Non usare mai " *" con il comando git add: " *" significa espansione della shell, che, nel tuo caso, non includerebbe alcun .xxxfile / cartella.

Usa semplicemente:

git add .

(Nota il " .")
Non è necessario -A, che è comunque l'impostazione predefinita, poiché Git 2.0 .

Per ulteriori informazioni, vedere " Differenza tra caratteri jolly .(punto) e *(asterisco) in Git ".

Abdeladim Nov 18 2020 at 14:56

il comando è "git add." ('.' seguito da '*') e non c'è bisogno di -A