2012-07-24 20 views
54

Próbuję pracować używając Git - Extension z kolegą, w aplikacji napisanej w języku C#.GIT - Nie mogę zignorować pliku .suo.

Zostaliśmy dodani do pliku .gitignore plik "project1.suo", ale za każdym razem, gdy jeden z nas musi zatwierdzić projekt, Git wydaje nam polecenie zatwierdzenia pliku "project1.suo".

Próbowaliśmy wiele metod, aby dodać plik w .gitignore tak:

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

Nie możemy rozwiązać ten problem.

+2

jest plik .gitignore itselft dodano do repo? –

+0

tak jest w repozytorium – Laxedur

+3

Domyślam się, że plik został dodany raz, spróbuj git rm na tym pliku explicitely, zatwierdzić i zobaczyć, czy jest nadal sugerowany jako dodany plik. –

Odpowiedz

113

git nie ignoruje plików, które zostały dodane do repozytorium. Jeśli chcesz, aby to ignorować, trzeba usunąć plik z repozytorium:

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

To usunie plik z repozytorium, gdy jest jeszcze na dysku twardym.

+0

jeśli znasz pliki * .suo, to na pewno nie będzie to zdalne. Czy spowoduje to problem dla osoby, która sklonuje ten projekt? – Waqas

+0

Jeśli używasz klienta Visual Studio, nie ma możliwości zrobienia tego z tego miejsca, musisz użyć powłoki cmd. Ale jeśli użyłbym polecenia rm z powłoki, zobaczyłbym plik .suo z przekreśleniem, ale jeśli dokonałbym zmiany za pomocą interfejsu VS, pojawiłby się ponownie. Musisz wykonać oba powyższe polecenia za pomocą wiersza poleceń. –

+1

@Waqas nie, studio wizualne po prostu utworzy dla nich nowy plik. Dzieje się tak, gdy ważne jest .gitignore z wyłączeniem * .suo jako części repozytorium. Po zatwierdzeniu, .gitignore, którego sprawdzili, zapobiegną (lub przynajmniej zniechęcą) do sprawdzenia w swoim pliku SUO. –

-4

Miałem ten sam problem. Rozwiązanie Ikke pomaga, ale nie zapomnij usunąć wpisu * .suo z pliku .gitignore, jeśli istnieje. Po plik został rozwiązany, wykonaj

git add **/*.suo 
+1

.suo NIE powinien zostać usunięte z .gitignore w celu spełnienia wymagań PO. – Caltor

1

zawsze wrócić do tej kwestii na stosowanie metody odpowiedź ale znalazłem lepsze rozwiązanie, które ma ignorować zmiany w tym pliku. Sposób jest

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

lub

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

cofnąć to zastosowanie -no-zakładać-niezmienione

+0

Otrzymuję komunikat "krytyczny: nie można oznaczyć pliku Web /" – dancerjude

Powiązane problemy