ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git - git.ignore파일 적용되지 않는 경우
    Git 2024. 12. 5. 11:36
    반응형

    git.ignore파일 적용되지 않는 경우 

     

    원인: .gitignore는 Git이 추적하지 않는 파일에만 영향을 미칩니다. 이미 Git에 커밋되거나 추가된 파일은 .gitignore를 추가해도 무시되지 않습니다.  

     

    그렇기 때문에, 추적파일을 초기화해주면 됩니다. 아래의 명령어를 통해 추적파일을 초기화해주면 됩니다. 

    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"

     

    1. git rm -r --cached .

    • 기능: Git의 **인덱스(index)**에서 파일을 제거하지만, 실제 파일 시스템(로컬 디렉토리)에서는 파일을 삭제하지 않습니다.
    • 동작 원리:
      • rm: Git에서 파일을 제거하는 명령.
      • -r: 디렉토리와 그 하위 파일들을 재귀적으로 처리.
      • --cached: 파일을 인덱스에서만 제거하고 워킹 디렉토리에는 그대로 둠.
    • 용도:
      • 이미 Git에 추가되었지만 .gitignore에 의해 무시되어야 하는 파일을 처리할 때 주로 사용합니다.
      • 파일이 잘못 트래킹되었을 때 Git의 스테이징 영역에서만 제거합니다.

    2. git add .

    • 기능: 워킹 디렉토리의 변경 사항을 모두 Git의 인덱스에 추가합니다.
    • 동작 원리:
      • Git은 변경된 파일을 인덱스에 추가하여 다음 커밋에 포함시킵니다.
      • .은 현재 디렉토리와 그 하위 디렉토리의 모든 파일을 대상으로 합니다.
    • 용도:
      • 인덱스에서 제거된 파일을 다시 추가합니다.
      • .gitignore 파일의 수정 사항이 반영되었을 경우, 무시되지 않는 파일들만 다시 인덱스에 포함시킵니다.

    3. git commit -m "fixed untracked files"

    • 기능: 현재 인덱스 상태를 커밋하여 스냅샷으로 저장합니다.
    • 동작 원리:
      • Git은 인덱스에 추가된 변경 사항을 기반으로 커밋을 생성합니다.
      • -m 옵션을 사용하여 커밋 메시지를 인라인으로 작성합니다.
    • 용도:
      • .gitignore로 인해 추적이 중단된 파일 상태를 정리하고 새로운 상태를 저장하는 데 사용합니다.

    예제 시나리오의 흐름

    1. 기존 상태:
      • 이미 Git에 트래킹되던 파일이 .gitignore에 추가되었지만 여전히 인덱스에서 관리되고 있는 상황.
    2. 명령 실행 후 결과:
      • git rm -r --cached .:
        • 인덱스에서 모든 파일이 제거되고 .gitignore에 의해 무시된 파일은 다음 단계에서 제외됨.
      • git add .:
        • .gitignore에 의해 무시되지 않는 파일들만 다시 인덱스에 추가됨.
      • git commit -m "fixed untracked files":
        • 새로운 상태로 정리된 인덱스를 커밋으로 저장.
    반응형

    댓글

Designed by Tistory.