추적 중지 및 무시 시작

안녕 세상,

저는 지난 몇 달 동안 GitHub & Git을 가지고 놀았고 대부분 프로젝트와 전혀 관련 없는 파일을 실수로 커밋하고 푸시했습니다. 일반적으로 그들은 node.js를 사용할 때 node_modules 및 빌드 디렉토리와 같은 환경 파일이고 Gulp를 사용하여 css 및 JS를 최소화하기 때문에 _site 폴더 및 Gemfile.lock과 같은 파일은 내 블로그에 Jekyll을 사용할 때입니다.

이 문제의 원인은 무엇입니까? 내 저장소에 .gitignore 파일을 추가하는 것을 잊었습니다. .gitignore 파일에는 프로젝트에 대한 모든 무시 규칙(일반적으로 무시할 파일 및 폴더 이름)이 포함되어 있습니다. 그러나 문제가 있습니다. .gitignore 파일은 푸시되지 않은 파일만 무시하도록 Git에 지시합니다. 파일을 이미 푸시했으므로 무시 규칙에 추가해도 작동하지 않습니다. Git은 해당 파일의 변경 사항을 계속 추적하고 해당 변경 사항을 커밋하도록 잔소리합니다.

이 파일을 삭제하고 삭제 내용을 리포지토리로 푸시할 수 있지만 프로젝트를 빌드할 때마다 다시 생성됩니다. 그래서 그것은 작동하지 않습니다. 인터넷에서 빠른 검색을 통해 필요한 정확한 솔루션을 얻을 수 있었습니다. 저장소에서 이러한 파일을 제거하고 로컬에 보관하는 방법이 있습니다. git bash 또는 cmd와 같은 CLI에서 다음 명령을 실행하여 로컬 파일 시스템에서 파일을 제거하지 않고 저장소에서 파일을 삭제했습니다.


    git rm --cached <file name>
    E.g. git rm --cached package.json


저장소에서만 파일을 제거하는 명령 분석


    git rm –r --cached <directory name>
    E.g. git rm –r --cached _sites


저장소에서만 폴더와 그 내용을 제거하는 명령 분석--cached 플래그는 저장소에서 파일을 제거하고 로컬 복사본은 그대로 둡니다. 그리고 –r 플래그는 지정된 디렉토리 내의 파일을 재귀적으로 제거합니다.

내가 repo에서 파일을 제거했으므로 Git은 삭제된 파일의 로컬 복사본이 내가 repo에 추가한 새로운 것이라고 생각합니다. 따라서 이 파일 이름을 .gitignore 파일에 추가하면 git이 이 파일을 무시하도록 지시하고 다시 푸시되지 않습니다.

이 사고는 저에게 자주 발생하기 때문에 저장소에 무시 규칙을 추가하는 것을 잊지 않도록 여기에 게시하기로 결정했습니다. 잊어버리더라도 어디서 해결책을 찾아야 할지 압니다.

일을 더 간단하게 하기 위해 하나의 텍스트 상자에 내가 제공하는 운영 체제, IDE 및 프로그래밍 언어를 기반으로 .gitignore 파일을 생성하는 사이트gitignore.io를 찾았습니다. gitignore.io 홈페이지 스크린샷

좋은 웹페이지 즐겨찾기