JaeWon's Devlog
article thumbnail
반응형

프로젝트를 진행하면서 .gitignore 파일을 나중에 추가하였거나, 초반에 잘못 작성하여 수정하여 다시 적용시키게 되는 경우가 종종 발생합니다.

이러한 상황에서 .gitignore 를 다시 프로젝트에 적용시키는 방법을 정리해보도록 하겠습니다.

 

1. 프로젝트 모든 파일을 git 이 바라보고 있는 경우.

2. 프로젝트의 특정 파일만 git 이 무시하고 싶은 경우.

 

많은 경우가 있겠지만 해당 글에서는 위의 2가지 경우에만 작성하였습니다.


1. gitignore 란?

1-1. 정의

- 프로젝트 작업 시 로컬 환경의 정보나 빌드 정보 등 원격 저장소(Git)에서 관리 및 저장하면 안 되는 파일들을 지정하여 원격 저장소에 저장되지 않도록 관리하는 파일.

- 정의한 정보들에 해당하는 파일들에 대하여 git track(추적)하지 않도록 설정하는 역할을 한다.

1-2. 왜 사용하는가?

- 처음 프로젝트를 생성하고, 바로 Git 에 푸쉬를 할경우 .idea, test, gradle 설정파일 등 굳이 Git 에 저장할 필요가 없는 파일들도 같이 올라간다.

- 로컬 개발에서만 필요한 파일들은 Git 에서 관리할 필요가 없으니, Git 에서 추적에서 제외시키기 위해 gitignore 파일을 사용하여 관리를 한다.

1-3. 생성하기

- 프로젝트의 최상위 경로에서 .git 이 있는지 확인한다. (만약 없다면 생성한다, git init)

- .gitignore 의 파일명으로 생성한다.

- 추적을 원하지 않는 파일을 작성한다.

- 각 개발환경 별 .gitignore 샘플 : https://github.com/github/gitignore

 

2. 프로젝트 모든 파일을 git 이 바라보고 있는 경우

- 기본으로 생성되는 .gitignore 파일을 사용하거나, 뒤늦게 추가한 상황에서 모든 파일에 대해서 gitignore 를 적용 시킬 때 사용한다.

2-1. 해결 방법

  • .gitignore 파일의 생성과 내용을 다시 한번 확인한다.
  • 현재 프로젝트에서 gitignore가 적용되고자 하는 파일을 제외하고 commit을 한다.
    (개발 중인 파일의 내용이 사라질 수 있다.)
  • 터미널 또는 Git Bash 에서 .git 이 있는 위치(최상위 폴더)로 이동하여 아래 명령어를 입력한다.
git rm -r --cached .

- 위의 명령어는 다음과 같습니다.

  • git rm 의 옵션
    • -r : 폴더 안에 다른 파일이 있으면 해당 폴더를 지우지 못하도록 한다.
            폴더를 지우기 전에 안에 있는 내용을 반복적으로 비워주고 지우겠다는 옵션.
    • --cached : 이 옵션을 사용하면 git에 있는 인덱스 파일만 삭제하고 실제 파일은 삭제되지 않는다. 
  • 명령어 대상 파일
    • .  : 현재 디렉터리를 뜻한다.
            root 디렉토리에서 .을 사용하면 최상위 폴더 아래에 있는 모든 파일이 작업 대상이 된다.

- 해당 명령어를 입력 하였다면, 모든 파일에 대해서 git index가 초기화(git 원격 저장소 초기화) 되었으니 모든 파일에 대해 .gitingore가 다시 적용됩니다.

- 다시 git add 를 진행하여 원격 저장소에 파일을 올리고, commit & push를 진행합니다.

  • git add .
  • git commit -m "gitignore 다시 적용"
  • git push origin 브랜치명

3. 프로젝트의 특정 파일만 git 이 무시하고 싶은 경우

- 기존의 gitignore 를 사용하던 중, 무시하고자 하는 파일을 추가하고자 하는 경우에 사용한다.

3-1. 해결 방법

  • .gitignore 파일의 내용을 다시 한번 확인한다.
  • 현재 프로젝트에서 gitignore가 적용되고자 하는 파일을 제외하고 commit을 한다.
    (개발 중인 파일의 내용이 사라질 수 있다.)
  • 터미널 또는 Git Bash 에서 .git 이 있는 위치(최상위 폴더)로 이동하여 아래 명령어를 입력한다
git rm -r --cached 파일명1 파일명2
git rm -r --cahced 폴더명

- 명령어는 크게 달라진 것은 없습니다.

- 명령어 대상 파일이 .(전체) 에서 지우고자 하는 파일명 또는 폴더명으로 변경을 합니다.

- 지운 파일에 대해서 git index가 초기화(git 원격 저장소 초기화) 되었으니 해당 파일에 대해 .gitingore가 다시 적용됩니다.

- 다시 git add 를 진행하여 원격 저장소에 파일을 올리고, commit & push를 진행합니다.

- 간단하게 예를 들어보겠습니다.

  1. README.md 지우기
    • .git이 있는 최상위 폴더로 이동
    • git rm -r --cached README.md
      (README.md 파일은 프로젝트 최상위에 있다고 가정.)
    • git add .
    • git commit -m "gitignore 다시 적용"
    • git push origin 브랜치명
  2. test 폴더 지우기
    • .git이 있는 최상위 폴더로 이동
    • git rm -r --cached /src/test
      (최상위 폴더로부터 test 폴더의 경로.)
    • git add .
    • git commit -m "gitignore 다시 적용"
    • git push origin 브랜치명

출처

- https://coding-groot.tistory.com/59

반응형
profile

JaeWon's Devlog

@Wonol

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!