Linux와 커맨드 라인 기초
Git으로 관리하고 있는 프로젝트의 .gitignore에 'build/'라고 썼지만, 이전에 커밋한 build/out.log의 변경이 git status에 계속 표시된다. 이유로 올바른 것은?
- A.gitignore는 아직 추적하지 않은 파일에만 효과가 있으므로, 추적 중인 파일은 git rm --cached로 제외해야 하기 때문에
- B.gitignore에는 디렉터리를 쓸 수 없으며, 무시하고 싶은 파일의 이름을 하나씩 써야 하기 때문에
- C.gitignore는 그 파일 자체를 git add하여 커밋하기 전까지는 어떤 파일에도 효과가 없기 때문에
정답과 해설 보기
정답: A. .gitignore는 아직 추적하지 않은 파일에만 효과가 있으므로, 추적 중인 파일은 git rm --cached로 제외해야 하기 때문에
.gitignore는 아직 추적하지 않은(한 번도 커밋이나 git add를 하지 않은) 파일을 git status 목록이나 git add 대상에서 제외하기 위한 설정입니다. 이미 추적하고 있는 파일은 .gitignore에 써도 추적이 계속되므로 변경이 계속 표시됩니다. git rm --cached build/out.log를 실행하면 작업 디렉터리의 파일은 남긴 채 추적만 중단하며, 그것을 커밋한 후에는 .gitignore의 지정이 효과를 발휘합니다. 시뮬레이션 출력이나 빌드 결과 같은 큰 생성물은 처음부터 .gitignore에 써 두는 것이 안전합니다.