.gitignore파일 작성 방법
👩🏻💻 .gitignore파일에는 무엇을 작성해야 할까?
목차
1. .gitignore 파일이란?
2. .gitignore 파일 생성 방법
3. .gitignore 파일 작성 규칙
4. gitignore.io 사이트 이용 방법
5. 그 외 참고 사이트 소개
6. 추적했던 파일을 제외시키려면?
1 .gitignore이란?
gitignore 파일이란 로컬 개발 환경과 관련되어 있거나 보안상 유출되어서는 안 되는 파일들의 이름을 기록하여 프로젝트를 생성하고 버전 관리를 할 때, 커밋되지 않도록 자동적으로 git 커밋 대상에서 제외 시켜주는 파일입니다.
즉, .gitignore에는 추적 대상 제외 파일을 기록합니다.
이미 버전 관리 중인 파일은 중간에 .gitignore에 작성되었다고해서 자동으로 추적이 제외되지 않습니다.
.gitignore은 새로 add할 경우에만 적용되며 이미 버전 관리가 되고 있는 파일이라면 .gitignore에 기록 후 수동으로 제외시켜주는 과정을 거쳐야합니다.
.gitignore에 기록하는 파일의 예
- 로컬 개발 환경과 관련된 파일(IDE tool 및 설정 파일)
- 보안과 관련된 파일(key...)
- 로그 및 패키지 파일
- 사용자가 버전 관리를 원하지 않는 파일
2 .gitignore 파일 생성 방법
파일명은 반드시 .gitignore !
2-1) 프로젝트의 최상위 디렉터리로 이동합니다.
2-2 방법1) 메모장 등의 문서 편집기를 사용하여 최상위 디렉터리 위치에서 .gitignore 파일을 생성합니다.
2-2 방법2) 문서 편집기인 vi로 .gitignore 임시 파일을 생성하거나 파일 생성 후 편집기로 파일을 엽니다.
$touch .gitignore
$vi .gitignore
$vi .gitignore
임시파일은 :w 혹은 :wq를 눌러 저장해야지만 내용이 사라지지 않고 저장됩니다.
2-3) .gitignore 파일에 추적 대상에서 제외할 파일명을 작성하시면 됩니다.
3 .gitignore 파일 작성 규칙
# | 주석 | #주석입니다. (빈라인) |
주석과 빈라인은 어떤 영향도 주지 않습니다. |
? | 한 글자 수의 모든 문자 | a?.txt ?.png |
ab.txt, ah.txt 등 한 글자의 모든 png파일 |
* | 글자 수에 제한 없이 모든 문자(0개 이상) | *.txt ./**/a.txt |
모든 txt파일 현재 디렉터리의 하위 모든 폴더에서 a.txt파일들 |
! | 무시에서 제외(추적 제외를 무시 == 추적) | !b.txt | b.txt파일 추적 제외를 무시 |
/ | 경로 | /*.jpg 폴더명/ 폴더명/a.* |
현재 폴더의 확장자가 jpg인 모든 파일 해당 폴더의 모든 파일 해당 폴더의 a라는 모든 파일 |
4 gitignore.io 사이트 이용 방법
https://www.toptal.com/developers/gitignore
위의 사이트를 이용하여 gitignore파일을 생성 및 작성할 수 있습니다.
4-1) 사용하고 있는 운영체제, 개발환경(IDE), 프로그래밍 언어를 검색합니다.
4-2) 검색한 키워드에 해당하는 ignore에 들어갈 내용이 보입니다.
4-3) 위와 같은 내용으로 .gitignore파일을 작성합니다.
추가) 커멘드라인으로 .gitignore 파일 생성 방법을 알고싶으시다면, 아래의 링크를 참고하시면 될 것 같습니다.
https://docs.gitignore.io/use/command-line
5 그 외 참고사이트 소개
https://github.com/github/gitignore
위 사이트는 Github에서 관리하는 사이트입니다.
프로젝트별로 어떤 것들을 제외시켜야 하는지에 대해 나와 있는 .gitignore 템플릿들을 소개합니다.
6 추적했던 파일을 제외하는 방법
원격 저장소에 한 번 올라간(추적했던) 파일은 .gitignore에 파일명을 작성해도 자동적으로 인식하지 않습니다.
이럴 경우, 캐시를 삭제하여 직접 파일들을 제외시켜 주어야합니다.
6-1) 모든 파일 추적 취소를 원할 경우
(이후 모든 파일을 추적하지 않음 ➡️ 스테이징 영역에서 삭제)
$ git rm -r --cached .
6-2) 원격 저장소에 있는 파일 삭제. 로컬 로컬 저장소 파일 보전을 원할 경우
(이후 해당 파일을 추적하지 않음 ➡️ 스테이징 영역에서 삭제)
// 파일
$ git rm --cached 파일명
// 폴더
$ git rm -r --cached 폴더명
// 특정 디렉터리에 있는 파일을 원격 저장소에서 삭제하고, 로컬 저장소에는 보전할 경우
$ git rm -r --cached 삭제할주소/\파일명.확장자
6-3) 원격 저장소와 로컬 저장소에 있는 파일 삭제를 원할 경우
$ git rm 파일명
6-4) 커밋 및 푸시
// 현재 디렉터리 내의 변경사항에 대해 모두 스테이징 영역에 올림
$ git add .
// 커밋 메세지 작성 예)
$ git commit -m "modify .gitignore"
// 푸시
$ git push
추적을 취소하거나 파일을 삭제한다고 원격저장소에 바로 반영되는 것은 아닙니다.
commit과 push까지 모두 수행해야 원격저장소에 변경 내용이 반영됩니다.
우리 모두 파이팅😊
'데브옵스 | 클라우드 > Git & Github' 카테고리의 다른 글
[Git/Github] 원격저장소에 있는 브랜치(remote branch) 가져오기 (0) | 2024.04.20 |
---|---|
[Github] Github CLI 시작 (0) | 2024.02.01 |