본문 바로가기
IT

gitignore 파일로 특정 파일또는 디렉토리 제외 혹은 무시하기

by geddy 2024. 1. 21.

이 글에서는 gitignore 파일로 특정 파일또는 디렉토리 제외 혹은 무시하는 방법에 대해서 설명합니다. 

gitignore 파일로 특정 파일또는 디렉토리 제외 혹은 무시하기 썸네일

  • gitignore 파일
  • gitignore cache 처리하기(주의사항)

gitignore 파일


Git을 사용하면 내 workspace에는 있어야하지만, remote(원격)에 반영을하지 않는 파일들이 있습니다. 

예를 들어 __pycache__파일은 push할 필요가 없습니다. 

특정 파일이나 폴더의 변경사항 추적 및 push를 제외하기 위해 gitignore가 있습니다.

 

.git 디렉토리에서 .gitignore 파일을 만듭니다. 

 

.gitignore 파일에서 무시할 파일을 넣으면 됩니다. 

예를 들어 test.txt파일과 test 폴더를 ignore 한다고 하면, 아래와 같이 작성해 줍니다.

 

## 파일 ignore

test.txt

 

## 확장자 ignore

*.text

*.exe

*.zip

 

## 디렉토리 ignore

test/

디렉토리 와 같은 경우 무시하는 디렉토리  하위의 파일이나 디렉토리 또한 ignore 됩니다.

.gitignore 파일에서 # 뒤에 쓰는 내용은 주석입니다.

 

.gitignore 파일에 작성하면, 바로 반영되지 않습니다. 

add > commit > push를 해야 ignore 가 적용 됩니다.

 

$ git add .gitignore

$ git commit -m "ignore file&folder config"

$ git push origin master

 

gitignore cache 처리하기(주의사항)


gitignore를 하더라도 cache된 내용들은 계속 추적이 됩니다. 그러므로, 아래와 같이 처리해 주어야 합니다. 

** 주의사항 **

기존의 git의 추척을 받고 있던 파일이나 디렉토리는 .gitignore 파일에 작성하고 add > commit > push 하더라도 ignore 되지 않습니다.

이때는, 기존에 가지고 있는 cached를 치워야 합니다.

 

## 파일

git rm --cached test.txt

 

## 확장자

git rm --cached *.txt

 

## 디렉토리

git rm --cached test/ -r

git rm --cache 명령어는 Staging Area(add 를 하고나서의 영역)에서 파일을 제거하고 working directory(Local)에서는 파일을 유지하는 명령어입니다.

위의 명령어를 실행한 후 꼭 commit을 해줘야 합니다.

lswhh@DESKTOP-HQPQNKV:~/imgFilterApp$ git rm --cached *.pyc
rm 'imageProcessor/__pycache__/__init__.cpython-38.pyc'
rm 'white_box_cartoonizer/__pycache__/cartoonize.cpython-38.pyc'
rm 'white_box_cartoonizer/__pycache__/guided_filter.cpython-38.pyc'
rm 'white_box_cartoonizer/__pycache__/network.cpython-38.pyc'
lswhh@DESKTOP-HQPQNKV:~/imgFilterApp$ git commit -m"cache remove" 
[main 0a3184e] cache remove
 4 files changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 imageProcessor/__pycache__/__init__.cpython-38.pyc
 delete mode 100644 white_box_cartoonizer/__pycache__/cartoonize.cpython-38.pyc
 delete mode 100644 white_box_cartoonizer/__pycache__/guided_filter.cpython-38.pyc
 delete mode 100644 white_box_cartoonizer/__pycache__/network.cpython-38.pyc

기존에 관리하고 있던 파일을 cached 명령어를 쓰지 않고 무시하는 방법이 있습니다.

명령어는 다음과 같습니다.

$ git update-index --assume-unchanged [파일명]

 

아래와 같이 무시를 지정하고 다시 취소하는 방법도 있습니다.

$ git update-index --no-assume-unchanged [파일명]

수정사항 무시 파일 조회는 다음 명령어를 사용합니다.

$ git ls-files -v

facebook twitter kakaoTalk kakaostory naver band shareLink