GIT-.suo 파일을 무시할 수 없습니다.


84

C #으로 작성된 응용 프로그램에서 동료와 함께 Git을 사용하여 작업하려고합니다.

.gitignore 파일에 "project1.suo"항목을 추가했지만 우리 중 한 명이 프로젝트를 커밋해야 할 때마다 Git은 "project1.suo"파일도 커밋하라고 말하는 것 같습니다.

다음과 같이 .gitignore에 파일을 추가하기 위해 많은 방법을 시도했습니다.

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

이 문제를 해결할 수 없습니다.


2
.gitignore 파일 자체가 저장소에 추가됩니까?
Steve B

yes is in the repository
Laxedur 2012-07-24

3
파일이 한 번 추가 된 것 같습니다.이 파일에 대해 git rm을 명시 적으로 시도하고 커밋하고 여전히 추가 된 파일로 제안되는지 확인합니다.
Steve B

내가 rm 명령을 사용하는 방법을 ... 내가 시도했지만 명령 캔트 파일을 찾을 수 있기 때문에 당신은 말해 줄 수
Laxedur

@SteveB .gitignore를 적용하기 위해 저장소에 추가 할 필요는 없습니다.
Ikke 2012-07-24

답변:


165

git은 저장소에 추가 된 파일을 무시하지 않습니다. 무시하고 싶다면 저장소에서 파일을 삭제해야합니다.

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

이렇게하면 하드 드라이브에있는 동안 저장소에서 파일이 삭제됩니다.


* .suo 파일을 rm하면 해당 파일을 원격으로 푸시하지 않습니다. 이 프로젝트를 복제하는 사람에게 문제가됩니까?
Waqas

Visual Studio 클라이언트를 사용하는 경우 여기에서이 작업을 수행 할 방법이 없으므로 cmd 셸을 사용해야합니다. 그러나 셸에서 rm 명령을 사용하면 취소 선이있는 .suo 파일이 표시되지만 VS UI를 통해 변경 사항을 커밋하면 다시 나타납니다. 명령 줄을 통해 위의 두 명령을 모두 수행해야합니다.
Michael Blackburn

1
@Waqas 아니요, Visual Studio는 새 파일을 생성합니다. 이것은 저장소의 일부로 * .suo를 제외한 .gitignore가 중요한 경우입니다. 커밋 할 때 체크 아웃 한 .gitignore는 자신의 SUO 파일을 체크인하지 못하도록 막습니다 (또는 적어도 권장하지 않습니다).
Michael Blackburn

3
이것은 일부 새로운 사람들에게는 분명하지 않을 수 있습니다. 이것은 매력처럼 작동했습니다. 이 명령을 실행하려면 .suo가있는 폴더 안에 있어야합니다. cmd.exe에서 실행해야하는 첫 번째 명령은 "CD <.suo의 루트 폴더에 대한 전체 경로 입력> 디렉토리를 변경 한 다음 Enter를 누르는 것입니다. 기본적으로 .suo가있는 .vs 폴더가 표시되지 않을 수 있습니다. 숨겨진 파일 저장소 폴더 루트에 사용할 수 있습니다 내 파일이 프로젝트 이름이 없었다 단지 확장을 자식 RM --cached .suo 자식 "저장소에서 스오 파일 삭제"-m 커밋...
moto_geek

폴더를 무시해야하는 경우 이미 원격 저장소에 있습니다. 명령에서 -r 옵션을 사용하십시오. git rm -r --cached <폴더 경로>
Somnath Kadam

3

나는 항상이 질문으로 대답에 방법을 사용했지만이 파일의 변경 사항을 무시하는 더 나은 해결책을 찾았습니다. 방법은

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

또는

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

이 명령을 실행 취소하려면 --no-assume-unchanged


"치명적 : 파일 Web <directory> / <filetoexclude>를 표시 할 수 없습니다."라는 메시지가 나타납니다
dancerjude

누군가가 파일을 업데이트하면 문제가 발생할 수 있습니다. Git은 파일 업데이트를 시도하지만 파일이 변경되었음을 확인하고 오류 메시지를 표시합니다. 어쨌든 성능상의 이유로 만 사용해야하는 --skip-worktree보다 낫습니다 --assume-unchanged.
Ikke

-4

나는 같은 문제가 있었다. Ikke의 솔루션이 도움이되지만 * .suo 항목이있는 경우 .gitignore에서 제거하는 것을 잊지 마십시오. 파일을 수정 한 후

git add **/*.suo

1
.suo는 OP의 요구 사항을 충족하기 위해 .gitignore에서 제거하면 안됩니다.
Caltor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.