Git은 잊지 않는다! 짧은 이야기

웹 개발자라면 Git에 익숙해야 합니다.

Git은 혼자서 작업하는 경우에도 유용합니다.
프로젝트의 파일 및 변경 사항을 추적할 수 있습니다.
프로젝트에 발생한 일기를 일기로 볼 수 있습니다.

이야기



다른 개발자가 만든 프로젝트 작업을 시작했습니다.

React 또는 Angular 애플리케이션을 생각해 보십시오.
그러나 어떤 이유로 package-lock.json이 .gitignore에 포함되었습니다.

결과적으로 Git은 내가 커밋할 때마다 package-lock.json을 잊어버릴 것입니다.
Git이 package-lock.json의 변경 사항을 추적하도록 하는 것이 좋은 방법이긴 하지만 대체로 이것은 큰 문제가 아닙니다.

CI/CD의 변화



누군가가 package-lock.json을 CI/CD 용도로 포함하고 사용해야 한다고 결정했습니다. 그 이유에 대해서는 자세히 다루지 않겠지만 package-lock.json을 저장소에 추가해야 했습니다.

그리 간단하지 않다



가장 먼저 시도한 것은 .gitignore에서 package-lock.json을 제거하는 것이었습니다. 간단하죠? 하지만 작동하지 않습니다.

내 다음 커밋에는 package-lock.json/이 포함되지 않습니다.

해결책



this answer on SO 덕분에 Git이 이미 추적 중인 모든 파일을 계속 추적한다는 것을 이해했습니다.

따라서 먼저 Git 인덱스에서 모든 항목을 제거해야 합니다. 이는 디렉토리 또는 저장소의 파일에 영향을 미치지 않습니다. Git 인덱스만 정리합니다.

git rm -r --cached .


둘째, 다시 추가해야 합니다. 다음 명령은 예상대로 Git 인덱스를 업데이트합니다.

git add .


위의 두 명령은 전체 인덱스를 제거하고 업데이트합니다.
보다 우아한 솔루션은 관심 있는 파일을 만질 수 있습니다.

git rm --cached <file>
// or
git rm -r --cached <folder>

좋은 웹페이지 즐겨찾기