2014-04-07 18 views
40

Quello che ho fatto:.gitignore non sta ignorando le directory

Credo ci fossero alcune configurazioni strane dalla gui github che ha causato questo problema e mi ha impedito di essere in grado di utilizzare con facilità git da linea di comando o anche git -bash.

Ho finito solo disinstallando github e git, quindi reinstallando solo git per windows. Ora ho tutto in esecuzione dalla riga di comando (ad eccezione di ssh che eseguo da git-bash). Molto più facile e più affidabile del github gui.

Grazie a mu 無 per aver dedicato del tempo per cercare di capirlo. Non ho finito per usare la sua risposta, ma se non avessi avuto bisogno di fare una reinstallazione di git sarebbe stato quello che dovevo fare.


Sto usando il gui github sul mio computer locale. Ho appena notato che un commit che stavo per realizzare stava aggiornando tutti i miei moduli del nodo di aggiornamento recente. Ho impostato il mio .gitignore per ignorare l'intera directory node_modules/.

Non sono sicuro di cosa fare a riguardo. Tutti i tipi di file che ho incluso in .gitignore sono stati ignorati. Sono solo le directory che sembra ignorare.

Ecco il mio file .gitignore:

################# 
## Sublime Text 
################# 

*.sublime-project 
*.sublime-workspace 

################# 
## Images 
################# 

*.jpg 
*.jpeg 
*.png 
*.gif 
*.psd 
*.ai 

################# 
## Windows detritus 
################# 

# Windows image file caches 
Thumbs.db 
ehthumbs.db 

# Folder config file 
Desktop.ini 

# Recycle Bin used on file shares 
$RECYCLE.BIN/ 

# Mac crap 
.DS_Store 

################# 
## Directories 
################# 

dev/ 
cms/core/config/ 
node_modules/ 
+0

qual è l'output di 'git status'? Aggiungi questo alla domanda ... –

+0

Non ne so nulla –

+0

Vai al tuo terminale ed esegui 'git status' nel repository. Qualunque sia l'output, mettili qui. –

risposta

127

Hai un errore di ortografia nella regola ignorare - Stai ignorando node_modules/ invece di node_module/.

EDIT

Dato che la directory node_modules è già registrata come parte del repository, la regola .gitignore non si applica.

È necessario untrack directory da git utilizzando

git rm -r --cached node_modules 
git commit -m "removing node_modules" 

È possibile eseguire il sopra 2 in git-bash.

Dopo questo, la regola .gitignore ignorerà la directory.

Si noti che questo rimuoverà la directory node_modules dagli altri pronti contro termine, una volta che si tira i cambiamenti. Solo il repo originale in cui hai fatto che commettere avrà ancora la cartella node_modules lì.

+0

Che è non è un errore di battitura. La directory creata dal nodo è 'node_modules /' –

+0

la regola di ignore è 'node_modules', e nella tua domanda, all'inizio è' node_module'. –

+0

la regola ignora per la cartella 'dev' funziona? –

11

Se i file sono già tracciati, il file .gitignore non lo sovrascriverà. Sarà necessario utilizzare git rm --cached <files>

vedere tutti i dettagli su git rm a https://www.kernel.org/pub/software/scm/git/docs/git-rm.html mi sono imbattuto in una o due volte me stesso nella fase iniziale con git e non era proprio quello che mi aspettavo neanche.

+0

Questa è una risposta più completa al titolo in questione se ignoriamo i problemi di errore nella domanda dell'OP. Utile per le persone che arrivano con la ricerca. –

+0

Questa è la risposta corretta rispetto a quella popolare! –

2

Se si lavora con progetti di nodo, mi piace questo .gitignore:

# See http://help.github.com/ignore-files/ for more about ignoring files. 

# dependencies 
node_modules 

# testing 
coverage 

# production 
build 

# misc 
.DS_Store 
.env 
npm-debug.log 
Problemi correlati