자식 기록에서 민감한 데이터 제거
5703 단어 git
.env
라는 별도의 파일에 보관됩니다. Git에서 추적하지 않도록 .gitignore
에 추가됩니다. 그러나 이전 커밋을 확인하면 git 기록에 민감한 데이터가 있음을 알 수 있습니다. 그럼 이제 어떻게 해야 할까요?!Git built-in command
git filter-branch
또는 BFG Repo-Cleaner tool 두 가지 옵션이 있습니다. 이 기사에서는 BFG Repo-Cleaner 도구를 사용하여 리포지토리 기록을 다시 작성하는 방법을 보여주고자 합니다.The BFG Repo-Cleaner is a tool that’s built and maintained by the open-source community. It provides a faster, simpler alternative to
git filter-branch
for removing unwanted data. (GitHub)
mongoose.connect('mongodb+srv://user<password>@cluster0.fzrkd.mongodb.net/myFirstDatabase?retryWrites=true&w=majority',
{
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false,
useUnifiedTopology: true,
}).then(() => console.log('DB connection successful!'));
위의 코드는 몽구스 드라이버를 통해 MongoDB Atlas에 연결할 수 있는 Node.js 앱의 일부입니다. 이를 위해서는 해당 코드에서 굵게 표시된 연결 문자열이 필요합니다. 해당 연결 문자열은 중요한 데이터의 샘플입니다.
먼저
.env
.local 파일을 만들어 DATABASE
라는 변수에 연결 문자열을 저장합니다.DATABASE=mongodb+srv://user<password>@cluster0.fzrkd.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
그런 다음 해당 연결 문자열을 아래와 같이 코드에서
.env.local
로 process.env.DATABASE
의 문자열로 바꿉니다.mongoose.connect(process.env.DATABASE, {
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false,
useUnifiedTopology: true,
}).then(() => console.log('DB connection successful!'));
Node.js에서는
process
를 통해 환경 변수에 액세스할 수 있습니다.변경 사항을 커밋하지만 이전 변경 사항은 코드에서 바로 연결 문자열을 표시합니다. 해당 연결 문자열을
process.env.DATABASE
로 바꾸려면 나머지 커밋 뒤에 다음 지침을 따라야 합니다.brew install bfg
를 설치할 수 있고 Windows의 경우 Chocolatey:choco install bfg-repo-cleaner
를 사용하거나 해당 jar 파일site에서 다운로드할 수 있습니다. mongodb+srv://user<password>@cluster0.fzrkd.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
를 process.env.DATABASE
로 바꿉니다. replacements.txt
)을 만듭니다. Tyle answered in StackOverflow에 따르면 이 경우 텍스트 파일에는 다음이 포함됩니다.DATABASE=mongodb+srv://user<password>@cluster0.fzrkd.mongodb.net/myFirstDatabase?retryWrites=true&w=majority==>process.env.DATABASE
bfg
명령을 java -jar bfg.jar
로 바꿉니다.bfg --replace-text replacements.txt
git reflog expire --expire=now --all && git gc --prune=now --aggressive
Reference
이 문제에 관하여(자식 기록에서 민감한 데이터 제거), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/luckydevboy/removing-sensitive-data-from-the-git-history-3p94텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)