참조: https://git-scm.com/docs/gitignore
gitignore은 git에서 어떤 파일을 무시할지 설정하는 파일입니다.
이미 tracked된 것들에는 영향을 주지 않습니다.
gitignore 참조 순서파일과 매칭되지 않습니다. 따라서 가독성을 위해 사용할 수 있습니다.
##은 comment로 처리됩니다.
\로 감싸졌다고 하더라도 무시됩니다.
!!는 not과 같습니다.
파일 이름 맨 앞에 !가 있고, 이를 ignore할 때 사용하려면 \를 통해 escape 해줘야 합니다.
//는 디렉토리를 구분합니다.
처음, 중간, 끝 어느 위치에도 올 수 있습니다.
끝에 /를 사용하면 매칭되는 폴더에만 적용이 됩니다.
사용하지 않으면 매칭되는 폴더, 파일 모두 적용됩니다.
*/를 제외한 모든 길이의 문자와 매칭됩니다.
?/를 제외한 한 문자와 매칭됩니다.
[a-zA-Z]처럼 range를 설정할 수 있습니다.
****는 /를 포함한 모든 길이의 문자와 매칭됩니다.
**로 시작하고 /를 적으면 모든 디렉토리에서 검색합니다.
예를 들어 **/foo는 모든 디렉토리에 있는 foo와 매칭됩니다.
(현재 디렉토리인 .도 포함됩니다. ..는 포함되지 않습니다.)
**로 끝나는 경우 모든 내부 파일, 폴더와 매칭됩니다.
예를 들어 abc/**는 abc 폴더 내부의 모든 파일, 폴더와 매칭됩니다.
**를 중간에 적은경우 모든 sub directory(0개 이상)와 매칭됩니다.
예를 들어 a/**/b는 a/b, a/x/b, a/x/y/b 모두 매칭됩니다.