2016-02-16 21 views
5

Io uso l'ultima versione di Github Desktop. Il mio repo è costituito da una soluzione C# piuttosto ampia con molte sottodirectory e progetti. Mi piacerebbe ignorare tutti i file di cache R # e i binari compilati usando il file .gitignore che risiede nella directory principale della directory repo locale. Non ci sono altri gitignore da nessuna parte in questo repository e nessuno in nessuna directory genitore. Il mio gitignore attuale è questa:gitignore manca alcuni file binari (DLL e PE)

*.suo 
*.user 
_ReSharper.* 
bin 
obj 
packages 
*.cache 
*.pdb 
*.dll 
*.exe 
*.xml 

Quando ho fatto le mie modifiche, ricompilati e testato tutto, apro Github Desktop. Raggiunge quasi tutti i file che devono essere ignorati, solo alcuni.dll s, .pdb s e .exe s non vengono ignorati e presentarsi sempre come modificata:

img

Ora, ci sono file di modo più binari in questo repo. Mancano solo quelli specifici dello screengrab.

È possibile risolvere il problema e/o il gitignore può essere modificato per catturare tutti i file che dovrebbe catturare?

Ecco cosa ho provato:

  • Rimosso e ri-clonato il repository
  • rimosso e manualmente ricreato il gitignore
  • destro del click-> Ignora per estensione file dall'interno desktop GitHub cliente. Questo non funziona, peggio, si crea duplicato maschere nel gitignore
  • Controllato per gitignore contrastanti di nelle directory accessibile da Github Desktop
+0

"sembra essere casuale" - davvero? Puoi estrarre un esempio minimo? Senza alcun modo di riprodurre questo, la tua domanda non è responsabile. Detto questo, non c'è nemmeno una domanda di programmazione qui, quindi la tua domanda è fondamentalmente off-topic. –

+0

@UlrichEckhardt La parte "casuale" non è più il caso. Dopo aver nuovamente clonato nuovamente il repository, ora è sempre lo stesso (raffigurato nello screenshot). Per quanto riguarda l'argomento in discussione, le domande su ['strumenti software comunemente usati dai programmatori'] (http://stackoverflow.com/help/on-topic) stanno perfettamente bene qui. –

+1

Sono già presenti i file nel repository? '.gitignore' impedisce solo l'aggiunta di nuovi file, non impedisce di tenere traccia degli aggiornamenti sui file già presenti. Prova 'git clone' in una nuova cartella e controlla se i file dll sono presenti – Daenyth

risposta

1

forse avete file che sono stati già monitorata da git prima che si è modificato il .gitignore? Quei file (almeno in git 1.9.1) non vengono ignorati quando vengono aggiunti a .gitignore.

Per esempio, ho creato una directory "test" il file radice uno dei miei pronti contro termine e mettere un file in esso:

mkdir test 
echo "abc" > test/x.txt 

ho aggiunto, impegnato e lo spinse. Poi ho modificato .gitignore alla radice e ha aggiunto questa linea:

x.txt 

Ho anche fatto una modifica per testare/x.txt e ha aggiunto un nuovo file:

echo "123" >> test/x.txt 
mkdir test2 
echo "xyz" > test2/x.txt 

Ora, quando corro "git stato" vedo:

modified: .gitignore 
modified: test/x.txt 

Così test2/x.txt viene correttamente ignorato, ma test/x.txt è ancora monitorato.

Per forzare il file da ignorare, è possibile eliminarlo, aggiungere & confermare la cancellazione insieme alla modifica .gitignore, quindi ripristinare il file.

+0

Ho eliminato sia il repository remoto che locale (dopo aver scaricato manualmente i file da github) e ricreato un nuovo repository. Ho anche ricontrollato che non ci fossero file corrispondenti al mio gitignore che presentiamo. Questo è il modo in cui l'ho risolto nel mio caso. Grazie per i suggerimenti però - sarà un bel riferimento per chiunque abbia problemi simili. –