[공부한 것] .gitignore은 무슨 역할을 하는 걸까?

별의개발자커비·2023년 10월 28일
0

우테코 도전기

목록 보기
19/37

개요

프리코스 1주차 git을 통해 관리할 자원에 대해서도 고려한다라는 공통 피드백을 보고 그동안 살펴보지 않았던 .gitignore과 파일별 상태를 정리해보고자 한다!

.gitignore이란?

간단히 말하면 이 파일들은 git의 레포지토리에 추가 안할 거니까 Staging Are에 올리지마! 의 역할을 하는 파일이다.
그렇기 때문에 프로젝트의 최상위 위치에 위치해야한다고 한다.

.gitignore 파일 속 들여다보기

우선 미션 때 기본으로 제공되는 .gitignore 파일이다.
안에 ignore할 파일과 디렉토리들이 입력되어있는데 어떤 방식인지 알아보자.

  • 파일명 또는 폴더명만 있을 때

    • 해당 이름의 파일 또는 폴더는 무시한다.
      HELP.md
      .gradle
      .idea
  • / 로 끝날 때

    • 폴더를 의미하고, 해당 폴더는 무시한다. (=디렉토리)
      build/
       out/
  • ! 로 시작하는 경우

    • 이 패턴의 파일들은 무시하지 않는다.
      !gradle/wrapper/gradle-wrapper.jar
      !**/src/main/**
      !**/src/test/**
  • '#'으로 시작하는 경우

    • 주석 처리
    ### IntelliJ IDEA ###
  • '*'이 포함된 경우

    • 해당 패턴의 모든 파일을 무시한다.
      *.iws
      *.iml
      *.ipr
  • /로 시작할 때
    • 하위 폴더에 무시가 적용되지 않는다.

여기서 의문, 그냥 폴더명만(.gradle)과 폴더명/(out/)의 차이는?

  • 폴더명만 (.gradle)
    • 이게 폴더명일경우도 있지만 파일명일 경우도 있을 것인데 그 경우까지 포함해서 무시하는 것이고
  • 폴더명/ (out/)
    • out이라는 이름의 '폴더만' 무시하는 것이라고 이해했다.

그렇다면, 어떤 파일들이 ignore 된걸까?

그렇다면 위의 방식으로 해석해보자면 어떤 파일들이 ignore되게 한걸까?

  1. .gradle
    : Gradle 빌드 도구와 관련된 설정 및 캐시 파일을 저장하는 곳
  2. build
    : 프로젝트의 빌드 프로세스에서 생성되는 파일들을 저장하는 곳
  3. .idea
    : IDE와 관련된 설정으로 각자의 개발도구(IDE)가 자동으로 생성하는 폴더 (인텔리제이 기준)
  4. out/
    : IntelliJ IDEA의 컴파일 또는 빌드 과정에서 생성되는 출력 디렉토리

즉, 원격 저장소에는 필요없고 각자의 로컬 환경에만 필요한 파일들이 git에 올라가지 않게 한 것이다.


마지막으로, 파일별 상태 확인

인텔리제이에서 git과 연동하면 파일별로 git 상태에 따라 색깔이 다르게 표시된다.
따라서, ignore된 파일도 색깔로 확인할 수 있고, 더불어 그동안 대충 초록색이면 add 된 거겠거니~ 했기때문에 정확히 알아보자!

인텔리제이 공식문서에 따르면 이렇게 색깔마다 상태가 표현되고, 사진에서 ignore로 지정한 디렉토리, 파일들이 어두운 노란색으로 잘 표시되는 것을 확인할 수 있다.

  • 초록색 : add된 파일들
  • 어두운 노란색(주황색) : ignore된 파일
  • 기본색 : commit을 마치고 변경사항이 없는 파일


참고, gitignore 파일 생성 사이트

https://www.toptal.com/developers/gitignore
이런 사이트를 이용해서 IDE나 빌드 도구를 입력하면 위의 코드에서 봤던 ignore 코드들을 자동으로 생성할 수도 있는 것 같다!

참고한 글들

0개의 댓글