[Git] .gitignore 이란? (feat.idea)

JJoSuk·2023년 5월 31일
0
post-custom-banner

프로젝트에 원하지 않는 백업 파일이나 로그파일 혹은 컴파일 된 파일들을 Git에서 제외할 수 있는 설정 파일을 말한다.

여기서

  • 보안상으로 위험성이 있는 파일
  • 프로젝트와 관계없는 파일
  • 용량이 너무 커서 제외해야되는 파일
  • 편리성 제공

.gitignore 자동생성 사이트 와 생성 방법

자동생성 사이트 Gitignore.io

검색창에 운영체제, 개발환경(IDE), 프로그래밍 언어를 검색하면 .gitignore 파일을 자동으로 생성해 준다.

사용자가 하나씩 파일을 정리하기도 힘들고, 보안성 파일, 불필요한 파일들 일일이 정리하기 힘들다.
물론 이 경우 git rm 를 통해 일부 파일만 제외시키면 되지만, 모든 커밋에 그런 행동을 하는 것은 정말 힘들다.

따라서 우리는 .gitignore 이라는 디렉토리를 만들어 무시할 파일을 넣어 줄 수 있다.

여기서 일부 제외할 파일

  • 운영체재
  • IDE
  • 프로그래밍 언어별

추가로 gitignore를 사용하는 이유 중 큰 부분이 이 .idea라는 폴더 때문인데, 이에 관련 설명은 아래에 첨부하겠다.


.idea 폴더란? .gitignore 추가하는 이유

작업을 완료한 후에 Git 을 commit 하려할때 .idea 란 폴더 아래 작업 내용물들이 추가되는 경우가 있다.

.idea 폴더는 IntelliJ 의 IDE 옵션(프로젝트별 설정값)을 저장하는 폴더라고 생각하면 된다.

여기서 중요한건 IDE 의 각 옵션은 작업자의 컴퓨터 환경에 맞춰서 변경된다. 설정이 본인에 맞춰 옵션이 설정되어 있는데 이걸 다른 작업자에게 공유하면 소스 오류 발생할 수 있어 주의 해야한다.

따라서 다른 작업자가 소스를 받을때 영향을 주지않기 위해 .gitignore 에 추가 한다.

# .gitignore 파일
*.idea

.gitignore 작성 규칙

그럼 위에 글을 정리해서 설명하겠다.

  • 어떤 파일들을 커밋 대상에서 제외시켜야 할까?
    • IDE tool과 관련된 설정파일
    • 언어의 빌드 결과물, 로그, 패키지 관련 파일
    • 그외 프로젝트에서 사용자가 제외하기 원하는 파일 등등…
  • 프로젝트에서 어떤걸 커밋 대상에서 제외 시켜야 할지 궁금하다면


.gitignore 파일 규칙

표현의미
#, 빈라인#은 주석을 의미하며, 빈라인은 아무런 영향을 주지 않습니다.
*.a확장자가 .a 인 모든 파일을 무시합니다.
folder_name/해당 폴더의 모든 파일을 무시합니다.
folder_name/*.a해당 폴더의 확장자가 .a 인 모든 파일을 무시합니다.
folder_name/*/.a해당 폴더 포함한 하위 모든 폴더에서 확장자가 .a 인 모든 파일을 무시합니다.
/*.a현재 폴더의 확장자가 .a 인 모든파일을 무시합니다.

.gitignore 파일 이외의 방법들

특정 파일들에 대한 규칙을 저장소에 커밋 없이 ignore 처리하기

  • .git/info/exclude 파일을 수정한다 (.gitignore 파일에서와 동일한 규칙 문법을 사용한다). 
기술한 규칙은 해당 저장소 내에 전역으로 적용될 것이다.
  • 로컬의 모든 저장소들에 대해 동일한 ignore 처리를 하고 싶다면 글로벌 gitignore 파일 설정을 해두도록 한다
글로벌 gitignore 파일은 git config --global core.excludesfile <(filepach)> 형식으로 설정

추가적으로, Git 이 관리중인 (tracked) 파일들에 대한 로컬 변경사항들을 다음과 같은 방법으로 Git 의 글로벌 설정을 변경하지 않고도 ignore 처리할 수 있다.

  • git update-index --skip-worktree [<(file)>...]
: 로컬에만 적용되어야 할 설정파일 수정사항 등이 커밋되지 않도록 설정한다
  • git update-index --assume-unchanged [<(file)>...]
: SDK등과 같이 수정되어서는 안되는 파일들에 대해 변경 검사를 하지 않도록 설정한다

.ignore 처리된 파일들 정리하기

git clean -X 명령어를 이용하면 ignore 처리된 파일들을 제거할 수 있다.

  • 현재 작업 디렉토리에 존재하는 ignore 처리된 파일들의 목록을 표시한다
    $ git clean -Xn

  • 위 명령어에 의해 나타난 파일들을 삭제한다
    $ git clean -Xf

뒤에 x에 대한 주의 사항이 있다

  • X(대문자) - 옵션은 ignore 처리된 파일들만 정리한다.

(강조)ignore 처리된 파일뿐만 아니라 Git에서 관리하지 않는 (untracked) 파일까지 제거하려면(강조)

  • x(소문자) - 위의 옵션을 사용한다.

관련글 : https://inpa.tistory.com/entry/GIT-⚡%EF%B8%8F-gitignore-자동-생성#

profile
안녕하세요
post-custom-banner

0개의 댓글