인프런 커뮤니티 질문&답변
gitignore관련 질문
해결된 질문
작성
·
28
답변 2
0
아하..!
리모트 레포지토리에 공개해서는 안되는 코드가 실수로 올라가버린 상황이고,
이 코드를 '완전히' 삭제하고 싶으신 건가요??
지금 상황은, 커밋 히스토리를 조회하는 방법으로 API 같은 중요한 정보가 유출될까 걱정하고 계신 거군요!
흠.. 이 경우에 문제를 해결할 방법을 고민해봤지만, 리모트 레포지토리를 새롭게 생성하거나 브랜치를 force push 하는 방법밖에 떠오르질 않네요..!
개발자는 git 명령어로 커밋을 삭제도 변경도 할 수 없어서요. ㅠ
아마 저라면,
1. (가능하다면) 브랜치를 force push 방법으로 커밋 히스토리를 덮어쓰거나, (<- 사실 완벽한 방법은 아닙니다. .git 폴더를 통해 이전 커밋의 내용을 찾아볼 수 있기 때문입니다.)
2. 그냥 속 편하게 리모트 레포지토리를 다시 생성할 것 같아요. 물론, 기존의 리모트 레포지토리는 삭제하구요.
0
안녕하세요, 인프런 AI 인턴입니다. Jh P님, Git에서 .gitignore 파일을 설정하여 환경 관련 파일을 무시하고자 하시는데, 이미 커밋된 파일들이 존재하여 그 부분에 대해 걱정하고 계시군요.
Git에서 환경 변수 및 설정 파일 처리 방법
이미 레포지토리에 커밋된 파일이 있는 경우 .gitignore 파일을 통해 해당 파일들을 무시하기 위해서는 추가적인 조치가 필요합니다. 다음은 이러한 상황에서의 조치 방법입니다:
.gitignore 파일 생성 및 수정:
- 먼저, .gitignore 파일을 만들어서 무시하고자 하는 파일 경로를 추가합니다. 예를 들어, 환경 설정 파일과 같은 민감한 파일명을 추가하세요.
- 먼저, .gitignore 파일을 만들어서 무시하고자 하는 파일 경로를 추가합니다. 예를 들어, 환경 설정 파일과 같은 민감한 파일명을 추가하세요.
캐시에서 파일 제거:
- 이미 git에 추가된 파일을 커밋에서 제거하려면,
git rm --cached <파일명>명령어를 사용합니다. 이 작업을 통해 리포지토리에서 파일을 제거하면서도 로컬에는 남게 됩니다.
- 이미 git에 추가된 파일을 커밋에서 제거하려면,
git rm --cached <file>
- 변경 사항 커밋:
- 위의 변경 사항을 커밋하여, 레포지토리에서 해당 파일들을 제거합니다.
- 위의 변경 사항을 커밋하여, 레포지토리에서 해당 파일들을 제거합니다.
git commit -m "Remove sensitive files from the repository"
GitHub에서의 히스토리 추적:
- GitHub에 이미 파일이 푸쉬된 상태라면, 기록 자체는 남지만 이후 커밋에서는 무시됩니다. 과거 이력을 지우고자 한다면, Git BFG Repo-Cleaner 또는 git-filter-branch 등의 도구를 사용해 파일을 완전히 제거할 수 있습니다. 하지만, 이는 협업 환경에서 사용 시 주의를 기울여야 하고, 외부 푸쉬를 강제하는 작업이 될 수 있습니다.
- GitHub에 이미 파일이 푸쉬된 상태라면, 기록 자체는 남지만 이후 커밋에서는 무시됩니다. 과거 이력을 지우고자 한다면, Git BFG Repo-Cleaner 또는 git-filter-branch 등의 도구를 사용해 파일을 완전히 제거할 수 있습니다. 하지만, 이는 협업 환경에서 사용 시 주의를 기울여야 하고, 외부 푸쉬를 강제하는 작업이 될 수 있습니다.
협업에서의 주의사항:
- 이미 외부로 푸쉬된 커밋을 수정하는 것은 다른 동료들과의 작업에 문제를 일으킬 수 있으므로, 해당 부분에 대해서는 주의가 필요합니다.
- 이미 외부로 푸쉬된 커밋을 수정하는 것은 다른 동료들과의 작업에 문제를 일으킬 수 있으므로, 해당 부분에 대해서는 주의가 필요합니다.
해당 내용과 유사한 설명을 포함하는 게시물을 참고해주세요:
저는 질문자님의 이해를 돕고자 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





리모트 레포에 최근 커맛을 업로드(이 부분엔 API키 같은 부분이 업로드 되어 있음)
문제점을 인지하고 gitignore하고 다시 푸쉬로 업로드
현재 리모트레포에서는 환경파일이 안보이지만 리모트 레포에 커밋 기록 전부 올라가므로 이전 커밋으로 돌아가면 환경파일 볼 수 있음
정리 하면 이렇게 될 거 같습니다!