.gitignore 파일
자신의 개발 언어나 운영체제 또는 IDE등 개발 플랫폼에 따라 실제 프로젝트에 중요한 파일 이외에 다양한 설정 파일들이 프로젝트 디렉터리에 생성됩니다. 예를들어 java의 경우 eclipse를 많이 사용하는데 eclipse에는 .project라는 설정파일이 있죠.
그리고 버전 관리에는 특별한 경우가 아니면 원본 소스 코드를 저장소에 Commit하는데, pc에서 테스트하기 위해 컴파일한 파일들이 올라가는것은 원치 않는 행동일 것입니다. 
다행히도 Git에는 그런 파일들을 Commit 목록에서 자동 제외(무시)할 수 있는 방법을 제공 하고 있습니다.
Git에서는 .gitignore 라는 설정파일을 Git 프로젝트 디렉터리 하위에 두면 .gitignore에 들어있는 확장자나 경로 패턴을 읽어들여 해당 파일들은 버전관리에서 무시하게 되어있습니다.




.gitignore 파일 작성 문법
.gitignore 파일은 Glob 패턴에 따라 작성될 수 있는데, Glob 패턴은 정규표현식을 더욱 간결하게 만든것으로 생각할 수 있습니다.
아래의 .gitignore 파일 예제를 보자면 Java 언어기반의 프로젝트를 진행할 때 컴파일된 .class파일과 라이브러리인 .jar 그리고 IDE인 이클립스의 프로젝트 설정 파일을 등록하여 무시할 수 있습니다.
*.class
*.jar
*.project


작성 패턴은 다음과 같은 규칙이 있습니다.
  • (애스터리스크) 는 문자가 존재하지 않거나 한 개 이상 있는것을 의미합니다.
  • 중괄호는 ~중에 한 글자를 의미하며, [abc]는 a 또는 b 또는 c 중에 하나를 의미합니다.
  • 표준 Glob Pattern을 사용합니다.
  • / (슬래시) 부터 시작하는 경로 패턴은 하위 디렉터리(Recursivity)에 반복적으로 적용되지 않습니다.
  • ! (느낌표) 로 시작하는 패턴은 gitignore에서 제외하며, 무시되지 않습니다.
  • 공백 라인 또는 #으로 시작하는 라인은 규칙이 무시됩니다.


작성 예시
#확장자가 .class인 파일은 무시합니다.
*.class

#.class 파일들은 모두 무시되지만, HelloWorld.class만큼은 무시하지 않습니다.
!HelloWorld.class

#현재 디렉터리에 있는 /Test.java 파일은 무시되지만,
#subDir/Test.java 같이 특정 디렉터리 하위에 있는 Test.java는 무시되지 않습니다.
/Test.java

#target/ 디렉터리에 있는 모든 파일 무시합니다.
target/

#src/ 하위의 .java 파일은 무시되지만 /src/main/ 하위의 .java 파일은 무시되지 않습니다.
src/*.java

#src/ 하위에 존재하는 모든 디렉터리의 .txt 파일을 무시합니다.
src/**/*.txt


만약 gitignore 파일을 직접 작성하는것이 아닌 환경에 따라 자동으로 작성하고 싶은 경우 다음 글을 참고합니다.
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!