2012-07-24 14 views
54

Sto provando a utilizzare Git - Extension con un collega, in un'applicazione scritta in C#.GIT - Impossibile ignorare il file .suo

Siamo stati aggiunti al file .gitignore il file "project1.suo" ma ogni volta che uno di noi deve impegnare il progetto, Git sembra dirci di impegnare il file "project1.suo".

Abbiamo provato molti metodo per aggiungere il file in .gitignore così:

*.suo 
project1.suo 
c:\project\project1.suo 

Non possiamo risolvere questo problema.

+2

è il file .gitignore itselft aggiunto il repo? –

+0

sì è nel repository – Laxedur

+3

Immagino che il file sia stato aggiunto una volta, provi un git rm su questo file in modo esplicito, commetti e vedi se è ancora suggerito come file aggiunto. –

risposta

113

git non ignora i file che sono stati aggiunti al repository. Se si desidera ottenere è ignorato, è necessario eliminare il file dal repository:

git rm --cached project1.suo 
git commit -m "Delete suo file from repository" 

Questo sarà eliminare il file dal repository, mentre è ancora sul vostro hard disk.

+0

se si utilizzano i file * .suo, sicuramente non sposterà i file da remoto. Causa il problema per la persona che clona questo progetto? – Waqas

+0

Se stai usando il client di Visual Studio, non c'è modo di farlo da lì, devi usare la shell cmd. Ma se usassi il comando rm dalla shell, vedrei il file .suo con un barrato, ma se avessi commesso il cambiamento attraverso l'interfaccia utente di VS, sarebbe riapparso. Devi fare entrambi i comandi sopra attraverso la riga di comando. –

+1

@Waqas no, visual studio creerà solo un nuovo file per loro. Questo è quando il .gitignore che esclude * .suo come parte del repository è importante. Quando eseguono il commit, il .gitignore che hanno estratto li impedirà (o almeno li scoraggerà) di controllare il proprio file SUO. –

-4

Ho avuto lo stesso problema. La soluzione di Ikke aiuta, ma non dimenticare di rimuovere la voce * .suo dal tuo .gitignore, se è presente. Dopo che il file è corretto, fare

git add **/*.suo 
+1

Il .suo NON deve essere rimosso da .gitignore per soddisfare i requisiti dell'OP. – Caltor

1

ho sempre tornare a questa domanda per utilizzare il metodo nella risposta, ma ho trovato una soluzione migliore che è quello di ignorare le modifiche a questo file. Il metodo è

git update-index --assume-unchanged project1.suo 

o

git update-index --assume-unchanged .vs/config/applicationhost.config 

Per annullare questo uso --no-assumere-invariata

+0

Ricevo un messaggio "fatale: impossibile contrassegnare il file Web /" – dancerjude

Problemi correlati