저장소에있는 파일을 무시하는 방법은 무엇입니까?


95

이미 Git 리포지토리에 커밋 된 파일 (config.php)이 있지만 로컬에서 무시하고 싶습니다. 즉, 해당 파일이 리포지토리에 남아 있기를 원하지만 Git에서 변경 사항을 무시하도록 강제합니다.

파일을 .gitignore에 넣었지만 여전히 변경된 것으로 표시되고 Git은 내가 무언가를 커밋 할 때마다 변경 사항을 커밋하려고 시도하고 있습니다. 어떤 아이디어, 내가 무엇을 놓치고 있거나 잘못하고 있습니까?


.gitignore- 파일을 추가하십시오-그렇게하면 관련 문제를 볼 수 있습니다.
Lars

답변:


191

파일이 .gitignore에 있더라도 여전히 상태에 표시되는 경우 파일이 아직 추적되지 않았는지 확인하십시오.

git rm --cached config.php

로컬에서 무시하고 싶다면 git 상태로 무시할 수도 있습니다.

git update-index --assume-unchanged config.php

1
알았어 고마워 ! 내 브랜치를 다른 브랜치와 병합하면이 파일이 문제를 일으킬 수 있습니까?
prcaen

1
@ Nimbus147 : 문제가되지 않아야하며 해당 파일의 변경 사항은 여전히 ​​무시됩니다 (예 : 추가 / 커밋되지 않음).
VonC

SmartGit을 사용하는 경우이를 위해 remove를 사용해야합니다.
Omid-RH

1
update-index --assume-unchanged원격 지사 를 강제하는 방법이 있습니까? 파일을 저장소에 보관하고 싶지만 다른 사람이 변경할 수는 없지만 스테이지에 사용할 수 없습니다.
p014k

1
@ p014k 내가 아는 것은 아닙니다. 그런 종류의 파일의 경우 다른 이름으로 버전을 유지 한 다음 콘텐츠 파일러 드라이버를 사용하여 필요할 때 올바른 파일 (개인용)을 자동으로 생성합니다. 예를 들어 해당 필터는 무대에서 활성화되지 않습니다. stackoverflow.com/a/54454356/6309 및 관련 링크를 참조하십시오 .
VonC

6

체크인 된 파일 무시 :

git update-index --assume-unchanged file

되돌리려면

git update-index --no-assume-unchanged file

모두 되돌리기

git update-index --really-refresh 

도움이되었습니다. 하나의 파일 되돌리기는 작동했지만 모두 되돌리기는 작동하지 않았습니다.
Adem Tepe

4

파일이 이미 저장소에 있으므로 인덱스 / 스테이징 영역에있는 경우 .gitignore에 대한 업데이트는 해당 상황을 변경하지 않습니다. 계속 커밋됩니다.

Index / Staging 영역에서 파일을 제거하려면 git rm <file>.


파일이 저장소에 있지만 아직 준비되지 않은 경우 어떻게됩니까? * .log 파일을 무시하려고하는데 "변경 사항"아래에 여전히 표시됩니다. 모두 무시하고 싶은데 어떻게해야하나요?
Sandra K

@SandraK 마지막 커밋에서 이미 저장소에 해당 파일 (파일 경로 / 이름)의 이전 버전이있는 경우 추적 된 것으로 간주됩니다. '인덱스'는 해당 파일을 레코드에 포함하므로 status계속해서 알려줍니다. 그 변화에 대해. 이전에 택한 파일과 현재 추적되지 않은 파일 모두에 대해 * .log 파일을 무시하려면 git rm *.log.gitignore 파일 을 모두 업데이트하고 업데이트해야합니다. 일부 로그 파일이 실제로 중요한 경우 먼저 확인 마 ... 그것은 특별한 일 ;-) 잊기 쉬운
필립 오클리

-3

파일이 .gitignore에 나열되면 변경할 수 없습니다.

따라서 한 커밋의 목록에서 파일을 제거하고 다음 커밋을 커밋 한 다음 나중에 세 번째 커밋에서 무시 목록에 파일을 다시 추가 할 수 있습니다.

내가 일반적으로하는 일은 파일을 두 개로 분할하는 것입니다. 하나는 허용되고 변경할 수 있습니다. 두 번째 파일이있는 경우이를 포함하면 개발자는 선택적으로 무시 된 파일에서 구성을 변경할 수 있습니다.


1
" 일단 파일이 .gitignore에 나열되면 변경할 수 없습니다. "-명확히 할 수 있습니까? 무슨 뜻입니까? 나는이 많은 파일을 내 많은에서 .gitignore의 내가 지속적으로 이러한 파일을 변경하고 있습니다! 에 파일을 추가하면 .gitignore변경할 수 없다고 말하는 사람이 처음 입니다.
trejder 2014-06-01

1
그는 실제로 틀렸다. 변경할 수 있습니다. Git은 파일을 업로드하지 않거나 업로드 옵션도 제공하지 않습니다.
David
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.