1. .gitignore

.gitigonre 파일은 Git이 무시할 파일들, 즉 추적하지 않을 파일들을 정의한 파일입니다.

Git은 파일의 변경사항이 있을 때 마다 어느 부분이 추가,수정,삭제 되었는지 알고 있는데요, 이는 파일들을 추적하고 있기 때문입니다.


그런데 __pycache__ 같은 cache 파일, 로그 파일, DB 및 API 키 같은 설정 파일 등은 Github에 공유되서는 안됩니다.

Gitlab이나 Github private 등 참여자만 볼 수 있는 공간이라면 상관 없지만, 모두가 볼 수 있는 Github에 위와 같은 파일들이 올라가서는 안됩니다.

push를 하기 전에 특정 파일/폴더를 제외해서 커밋을 하면 되겠지만, 매 번 이 이렇게 하는 것은 귀찮습니다. 누락될 위험도 있구요.


그래서 .gitignore 파일을 생성해서 파일/폴더 경로를 작성하면, Git은 더이상 그 파일/폴더들을 추적하지 않습니다.





2. .gitignore 파일 생성

git init을 명령을 실행했거나 clone을 했으면 .git 폴더가 있습니다.

.gitignore 파일은 .git 폴더가 존재하는 같은 레벨의 폴더에 생성하면 됩니다.


.gitignore 파일을 생성했으면, 이제 버전 관리를 하지 않을 파일 목록들을 작성하면 됩니다.

그런데 .gitignore 파일에 작성한 파일이 이미 버전 관리가 되고 있으면 git은 이 파일을 원래대로 추적합니다.

따라서 이미 버전 관리가 되고 있는 파일들은 수동으로 삭제해줘야 합니다.

// 파일 제외

# git rm --cached 파일명


// 디렉토리 제외

# git rm --cached 폴더명\ -r

git rm --cache 명령어는 Staging Area에서 파일을 제거하고 working directory에서는 파일을 유지하는 명령어입니다.

위의 명령어를 실행한 후 꼭 commit을 해줘야 합니다.





3. .gitignore 내용 작성

.gitignore 파일에는 위에서 언급한대로 설정파일, 캐시파일, 로그파일 같이 버전관리가 필요없는 파일들을 명시해주면 됩니다.

어떤 내용들을 작성해야 할지, 빼먹은 것은 없을지에 대해 참고 할만한 서비스가 있습니다. ( 링크 )


위 예제는 Django를 검색했을 때 추천 ignore 파일들입니다.

.gitignore를 작성하는 방식도 위의 예제를 보면서 참고할 수 있을 것 같습니다.




이상으로 gitignore 가 왜 필요한지, 어떻게 생성하고 작성하는지에 대해 알아보았습니다.