-
.gitignore 란 무엇인가?Git 2022. 3. 10. 10:28반응형
Github에서 Repository를 보다 보면 .gitignore파일을 본 적이 있을 것입니다. 이번 글에서는 .gitignore가 어떤 역할을 하는지에 대해서 정리해보려 합니.
.gitignore란?
Git 버전 관리에서 제외할 파일 목록을 지정하는 파일입니다.
Git으로 프로젝트를 관리할 때 그 프로젝트 안의 특정 파일들은 Git으로 관리할 필요가 없는 경우가 있습니다.
즉, 사용자가 원하지 않는 파일들을 자동적으로 git commit 대상에서 제외시켜 줍니다.
Git으로 관리할 필요가 없는 파일들
- NodeJS-Express로 개발할 때 npm module
용량이 크기도 하고, 프로젝트를 clone 한 뒤 직접 npm install 하는 것이 더 효율적입니다.
-Java 컴파일된(.class) 파일
언어의 빌드 결과물이기 때문에 .java 파일만 존재하면 됩니다.
- AWS 비밀키 , JWT 비밀 키 등
Github에 public으로 노출될 경우에 악용될 수 있기 때문에 올리지 말아야 합니다.
.gitignore 설정하기
프로젝트의 최상단 폴더에 생성한 후 Git이 무시하게 하고 싶은 파일명을 적어줍니다.
만약 someFileName을 Git이 무시하게 만들고 싶다면 파일이름을 .gitignore에 입력하면 됩니다.
#은 주석의 역할을 합니다.
#프로젝트 전체 폴더 중 TODO라는 폴더명을 사용하는 TODO 폴더의 하위 파일은 모두 무시 TODO/ #doc 폴더 바로 밑에 있는 파일 중 모든 txt 파일 ignore doc/*.txt #doc 폴더 하위에 있는 모든 pdf 파일 ignore (하위의 하위의 파일도 포함) doc/**/*.pdf # 확장자가 .a인 파일 무시 *.a # 윗 라인에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않음 !lib.a # 현재 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시하지 않음 /TODO # build/ 디렉토리에 있는 모든 파일 무시 build/ # doc/notes.txt 파일은 무시하고 doc/server/arch.txt 파일은 무시하지 않음 doc/*.txt # doc 디렉토리 아래 모든 .pdf 파일 무시 doc/**/*.pdf
.gitignore 작동원리
git은 변경점을 추적하는데 특정 파일들을 무시하여 추적하지 않도록 할 수 있습니다.
.gitignore가 동작하지 않아요
우선 이미 버전 관리에 포함되어 있는 파일들은 .gitignore 파일에 기록한다고 해서 Git에서 제외되지 않습니다.
특정 파일을 unstaged로 만들기 위해 git rm -r --cached {파일명} 또는 여러 파일을 한번에 처리하려면 git rm -r --cached .
또는 ignore를 추가했는데 자꾸 계속 파일들이 추가된다면 이는 git의 캐시 문제입니다.
해당 명령어로 캐시 내용을 전부 삭제 후 다시 add All 해서 commit 하면 됩니다.
git rm -r --cached . git add . git commit -m "fixed untracked files"
.gitignore에 어떤 조건을 설정해야할 지 모를 때 유용한 사이트
.gitignore 내부 설정을 자동으로 생성해 주는 사이트가 존재합니다.
ex) 프로젝트에서 사용하는 언어, IDE 등을 입력하면 자동으로 .gitignore 파일을 만들어줍니다.
Java로 언어를 설정하고 .gitignore 파일을 생성해보겠습니다.
# Created by https://www.toptal.com/developers/gitignore/api/java # Edit at https://www.toptal.com/developers/gitignore?templates=java ### Java ### # Compiled class file *.class # Log file *.log # BlueJ files *.ctxt # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* replay_pid* # End of https://www.toptal.com/developers/gitignore/api/java
출처
https://devlog-wjdrbs96.tistory.com/237
[Git] gitignore란 무엇일까?
Github에서 Repository를 보다보면 위와 같이 .gitignore 파일을 본적이 있을 것이다. 이번 글에서는 .gitignore가 어떤 역할을 하는지에 대해서 정리해보려 한다. .gitignore란? .gitignore파일이란 Git 버전 관..
devlog-wjdrbs96.tistory.com
https://devbirdfeet.tistory.com/31
Git(8) .gitignore 이란
GitHub를 사용하는 법 대한 깃 포스팅 순서이다. 1. Git(7) 원격저장소 생성하기 2. Git(8) .gitignore 이란 3. Git(9) Clone 으로 깃허브 소스 내려받기 4. Git(10) Push 로 로컬저장소에서 원격저장소..
devbirdfeet.tistory.com
https://zoosso.tistory.com/835
[Git] .gitignore 설정
.gitignore 설정 git은 변경점을 추적을 추적하는데, 특정 파일들을 무시(ignore)하여 추적하지 않게 할 수 있다. ▶ Log 파일이나 Build 설정은 관리 대상에서 제외 처리할 수 있다. ex) Intellij IDE에서..
zoosso.tistory.com
'Git' 카테고리의 다른 글
Git 커밋 메시지 컨벤션 (0) 2022.06.20 Git branch 전략이란? (0) 2022.06.16 Git 특정파일 히스토리 삭제 (0) 2022.06.01 [Git] 소스 트리 다운로드 및 설치 (0) 2022.04.26 Git이란? (0) 2022.03.20