본문 바로가기
[AWS]/AWS 기타

.gitignore가 동작 안할 때 상황별로 해결하기

by METAVERSE STORY 2022. 6. 27.
반응형
728x170

 

 

.gitignore 파일을 나중에 추가를 해주거나 아니면 다른 실수를 하면 .gitignore에 있는 파일이 전부 untracked로 파일로 다 뜰 때가 있다. 무시된 파일을 다시 추적해야 할 수도 있고 추적하고 있는 파일을 다시 무시해야 줘야 할 때도 있다. 그때의 해결법을 상황별로 정리했다.

gitignore 작성 실수로 인해 발생하는 문제의 3가지 패턴과 그 해결법


상황 1. 이미 모든 파일을 git이 추적 중인 경우

주로 .gitignore를 뒤늦게 추가해줬거나 잘못된 .gitignore을 올리고 나중에 눈치챈 경우 발생한다.
이미 모든 파일을 올려서 git이 추적중인데 .gitignore파일을 적용하고 싶을 때 이 방법을 쓰면 된다.

해결법

 0. .gitignore파일을 제대로 작성했는지 확인한다.

 1. 일단 현재 상태에서 무시하고자 하는 파일을 제외하고 commit을 해준다. (안 해주면 다 날아가므로 주의하자)

 2. 루트 폴더(최상위 폴더)에 간 후 git rm -r --cached .

git rm -r --cached .

git rm의 옵션들

  • -r : recursive removal - 폴더 안에 다른 파일이 있으면 그 폴더를 지우지 못한다. 그래서 폴더를 지우기 전에 안에 있는 내용을 반복적으로 비워주고 지우겠다는 옵션이다. 
  • --cached : only remove from the index - index에만 지워준다는 말은 Stage Area에서 내려주겠다는 옵션이다. 이 옵션을 사용하면 git에 있는 인덱스 파일만 삭제하고 실제 파일은 삭제되지 않는다. 

명령어 대상 파일

  • . - 현재 디렉터리를 뜻한다. root 디렉토리에서 .을 사용하면 Working Directory 안의 모든 파일이 작업 대상이 된다.

이제부터는 작업 중인 디렉터리의 모든 파일들의 git index가 다 초기화되었으니 모든 파일에 대해 .gitignore가 다시 적용된다. 그러니 이제 평상시대로 git add 해주고 commit 하면서 git status를 쳐보면 추적됐던 파일들이 gitignore에 따라 무시된 것을 확인할 수 있을 것이다.

 3. git add -A

 4. git commit -m "gitignore 다시 적용"


상황 2. 이미 추적 중인 파일 몇 개만 무시하고 싶은 경우

주로 원래 .gitignore를 사용하던 중 .gitignore에 무시할 파일을 더 추가했을 경우 발생한다.
.gitignore에 명시된 파일들 중 일부만 무시가 안 될 때 이 방법을 쓰면 된다. 위의 방법이랑 거의 똑같다.

해결법

 0. .gitignore파일을 제대로 작성했는지 확인한다.

 1. 일단 현재 상태에서 무시하고자 하는 파일을 제외하고 commit을 해준다. (안 해주면 다 날아가므로 주의하자)

 2. 루트 폴더(최상위 폴더)에 간 후 git rm -r --cached 파일명1 파일명2 ...

git rm -r --cached 파일명1 파일명2 ...

  git 옵션들은 위랑 똑같고 rm대상 파일을 하나씩 지정해주면 된다.

명령어 대상 파일

  • 파일명1 파일명2 ... - 대상 파일을 지정한다.

Ex) 내가 A.txt 파일이랑 B.txt 파일을 무시해주고 싶은 경우

이제부터는 선택한 파일의 git index가 다 초기화되었으니 .gitignore가 다시 적용되게 된다. 그러니 이제 평상시대로 git add 해주고 commit 하면서 git status를 쳐보면 추적됐던 파일들이 gitignore에 따라 무시된 것을 확인할 수 있을 것이다.

 3. git add -A

 4. git commit -m "gitignore 다시 적용"


상황 3. 반대로 .gitignore에 있었던 파일을 다시 추적하고 싶을 경우

주로 .gitignore에 의해서 무시된 파일을 강제로 git으로 관리(add, commit)하게 하고 싶을 경우이다.
무시돼서 Stage Area에도 못 올리고 Working Directory에는 있지만 git이 무시하는 파일을 다시 git으로 관리하고 싶을 때 이 방법을 쓰면 된다. 

해결법

이 경우 해결법은 간단하다. git add를 force옵션을 써서 사용하면 된다.

더보기
닫기

명령어 TIP

  • untrack 파일을 보려면 git ls-files --others
  • ignore된 파일을 보고 싶으면 git ls-files --others -i --exclude-standard

 1. git -f 다시추적하고싶은파일명

git add -f 파일명

git add의 옵션

  • -f 또는 --force : allow adding otherwise ignored file - gitignore에 의해서 무시된 파일을 강제로 Stage 해주는 옵션이다.

이 force 옵션을 써서 git add를 하면 무시된 파일도 강제로 Stage Area로 이동시켜준다. 

 2. git commit -m "무시했던 파일 다시 추적하게 함"

 

 

 

출처 : .gitignore가 동작 안할 때 상황별로 해결하기 (tistory.com)

반응형
그리드형

댓글