Linux와 커맨드 라인 기초

Git으로 관리하고 있는 프로젝트의 .gitignore에 'build/'라고 썼지만, 이전에 커밋한 build/out.log의 변경이 git status에 계속 표시된다. 이유로 올바른 것은?

  1. A.gitignore는 아직 추적하지 않은 파일에만 효과가 있으므로, 추적 중인 파일은 git rm --cached로 제외해야 하기 때문에
  2. B.gitignore에는 디렉터리를 쓸 수 없으며, 무시하고 싶은 파일의 이름을 하나씩 써야 하기 때문에
  3. 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에 써 두는 것이 안전합니다.

이 분야 연습하기 분야로 돌아가기

Linux와 커맨드 라인 기초의 다른 문제

  1. Linux의 표준적인 디렉터리와 그곳에 놓이는 것의 조합으로 올바른 것은?
  2. Linux의 /proc 디렉터리에 대한 설명으로 올바른 것은?
  3. 디렉터리 /home/alice/data가 있고, 현재 디렉터리는 /home/alice/work이다. 'cd ../data'를 실행한 다음 'pwd'를 실행했을 때 표시되는 디렉터리로 올바른 것은?
  4. 홈 디렉터리에서 'ls'를 실행하면 notes.txt만 표시되고, 'ls -a'를 실행하면 '.', '..', '.bashrc', 'notes.txt'가 표시되었다. 이 결과에 대한 설명으로 올바른 것은?
  5. 위의 명령을 순서대로 실행했을 때, 마지막 두 cat의 결과로 올바른 것은?