.gitignore

rescogitans·2022년 3월 30일
0

.gitignore

.gitignore 파일은 git으로 관리하지 않을 파일을 지정해줍니다.

  • 포함해선 안 될 파일들

    • 빌드 결과
      • *.class, *.jar, build/
        • 단 라이브러리에 dependency 걸린 것들은 남기거나, 다운 받을 수 있게 해야 합니다.
    • 바이너리
    • 제너레이트 가능한 파일들(논쟁적인 사안): 하단에서 자세히 다루도록 하겠습니다.
      • gradle, gradlew , gradle.bat등 -> gradle wrapper명령어로 생성 가능
    • 로컬 설정들
      • 로컬 환경에 의존적인 절대경로 등을 공개할 필요가 없고, 보안상 좋지도 않습니다.
    • 키/보안 관련 파일들
  • 간단하게 처리하는 방식: gitignore.io

    • 사용하는 빌드 툴이나 IDE 등을 입력해주면 거기에 맞는 .gitignore파일을 생성해줍니다.

gradle wrapper를 ingore하느냐에 대한 논쟁

  • 포함하지 않아야 한다

    • gradle이 설치된 환경이나, IDE를 사용하는 환경(내장 gradle 보유)에서는 바로 내려받을 수 있다.
    • gradle wrapper 관련 파일들이 업데이트될 때마다 무의미한 커밋을 날리게 된다.
      • jar가 큰 용량을 차지하게 된다.
  • 포함해야 한다

    • 빌드 서버 등의 환경에서 gradle 등 빌드 툴이 설치 + 환경변수 설정 되어있지 않은 경우를 대비하기 위해서
    • 의존성 회피라는 측면에서
  • 참고

    • gitignore.io에서 생성한 .gitignore파일에는 ignore가 적용되지 않게 되어 있다.
    • 스프링 프로젝트의 경우에도 gradle wrapper를 포함시킨다.
  • 박재성님 유투브

    • gradle wrapper 사용하는 이유?
    • gradle wrapper 없을 경우 아래의 과정을 거쳐 gradle 설치해야 합니다.
      • gradle 다운로드
      • 환경 변수 등록
    • gradle wrapper
      • 설치하지 않더라도 자동으로 다운로드 후 설치 과정을 자동화한다.
      • 처음 wrapper 기반으로 프로젝트를 만들면
        • 다른 사람들은 gradle 설치 없이 프로젝트를 만들 수 있다는 장점
        • springboot 기반으로 만들면 gradle wrapper 기반으로 프로젝트가 생성된다.
          • 이 방법을 사용할 경우 gradle을 귀찮게 설치하지 않아도 됩니다.
          • gradle이 설치된 이후에는 프로젝트 설정으로 가서 스프링 부트 관련 사항만 해제하면 된다.
  • 개인적인 결론
    • 학습용 예제 등의 코드를 백업하는 용도로는 gradle wrapper를 포함시키지 않는다.
    • 운영하고자 하는 프로젝트의 경우 포함시키는 것을 우선하되,
      당연히 팀 컨벤션에 따라간다.

0개의 댓글