이미 Git 리포지토리에 커밋 된 파일 (config.php)이 있지만 로컬에서 무시하고 싶습니다. 즉, 해당 파일이 리포지토리에 남아 있기를 원하지만 Git에서 변경 사항을 무시하도록 강제합니다.
파일을 .gitignore에 넣었지만 여전히 변경된 것으로 표시되고 Git은 내가 무언가를 커밋 할 때마다 변경 사항을 커밋하려고 시도하고 있습니다. 어떤 아이디어, 내가 무엇을 놓치고 있거나 잘못하고 있습니까?
답변
파일이 .gitignore에 있더라도 여전히 상태에 표시되는 경우 파일이 아직 추적되지 않았는지 확인하십시오.
git rm --cached config.php
로컬에서 무시하고 싶다면 git 상태로 무시할 수도 있습니다.
git update-index --assume-unchanged config.php
답변
체크인 된 파일 무시 :
git update-index --assume-unchanged file
되돌리려면
git update-index --no-assume-unchanged file
모두 되돌리기
git update-index --really-refresh
답변
파일이 이미 저장소에 있으므로 인덱스 / 스테이징 영역에있는 경우 .gitignore에 대한 업데이트는 해당 상황을 변경하지 않습니다. 계속 커밋됩니다.
Index / Staging 영역에서 파일을 제거하려면 git rm <file>
.
답변
파일이 .gitignore에 나열되면 변경할 수 없습니다.
따라서 한 커밋의 목록에서 파일을 제거하고 다음 커밋을 커밋 한 다음 나중에 세 번째 커밋에서 무시 목록에 파일을 다시 추가 할 수 있습니다.
내가 일반적으로하는 일은 파일을 두 개로 분할하는 것입니다. 하나는 허용되고 변경할 수 있습니다. 두 번째 파일이있는 경우이를 포함하면 개발자는 선택적으로 무시 된 파일에서 구성을 변경할 수 있습니다.