• .gitignore 패턴 :: 마이구미
    GitHub 2017. 9. 6. 11:09
    반응형

    이 글은 .gitignore 파일을 사용하기 위한 패턴들을 알아본다.

    공식 문서는 아래를 참고바란다.

    https://git-scm.com/docs/gitignore


    .gitignore 파일은 무엇인가?


    그대로 해석하면 "git"과 "ignore(무시하다)" 결합되어있다.

    결국 git에서 특정 파일에 대해 무시하기 위한 목적으로 사용된다.


    Node.js를 예로 들자면, node_modules이 있다.

    꼭 필요한 디렉토리이지만 git에 추가할 필요는 없다.

    node_modules 같은 디렉토리를 무시하는 이유는 다음과 같다.


    1.  많은 용량을 차지하게 된다.
    2.  package.json를 통해 대체가능하다.


    결국 불필요하다고 생각하는 것을 무시하면 된다.

    node.js 관련 프로젝트라면 대부분 다음과 같은 .gitignore를 기본적으로 이용한다.


    node_modules dist/* *.log


    모듈, 번들파일, 로그파일 등을 올리지 않기 위해 사용되는 것이 .gitignore 파일이다.

    .gitignore 파일을 해석하면 다음과 같다.

    node_modules => node_modules 디렉토리를 무시한다. 즉, 하위 모든 리소스를 무시한다. app/dist/* => app 디렉토리 안의 dist 디렉토리의 하위 모든 리소스를 무시한다. *.log => 모든 log 파일들을 무시한다.


    *은 모든 것을 의미한다.

    *.log 라면 a.log, b.log, c.log 모두 포함한다는 뜻이 된다.


    만약 타입스크립트를 사용하여 모든 js 파일을 무시하고 싶을 때는 다음과 같다.


    **/*.js => 모든 디렉토리의 .js 파일을 무시한다.


    어떠한 경우에는 무시되는 파일 중 특정 파일은 제외하고 싶을 때가 있다.

    그 경우는 "!" 키워드를 사용하면 무시된 파일을 다시 추적하게 할 수 있다.

    주의할 점은 순서이다.

    **/*.js 다음 라인에 작성해줘야한다.

    // fail

    !karma.conf.js

    **/*.js


    // success

    **/*.js

    !karma.conf.js


    .gitignore 파일에 무시가 적용된 파일은 git status를 통해 보면 추적이 안되는 것을 볼 수 있다.

    이미 추적된 파일은 영향을 받지 않는다.

    그렇기에 적용하기 위해서는 파일을 제거해야한다.

    관련 내용은 다음 글을 참고하길 바란다.

    관련 링크 - git rm --cached 파일 삭제

    반응형

    댓글

Designed by Tistory.