git: 중요한 데이터 제거 또는 교체 답변 re: git 기록의 파일에서 텍스트를 대체하는 방법은 무엇입니까?
목차
Introduction
BFG Repo Cleaner는 git filter-branch를 사용하는 것보다 빠르고 사용하기 쉽습니다. git log에서 중요한 정보를 편집하는 대부분의 사용 사례를 처리할 수 있습니다.
계속 진행하기 전에 BFG 설치 지침(위 시리즈 참조)을 읽으십시오. 그렇지 않고 이미 설치되어 있다면 다음 섹션으로 이동하십시오.
소개
Accidents happen. We have all been there. You committed sensitive data (e.g. passwords, keys, emails, or phone numbers) to the branch. Ok, no problem. Amend the previous commit. Easy. Right? Wrong.
This time you didn't realize the mistake until several weeks later. The commit is now baked deep into the repository, making it almost impossible to fix using git. A git rebase is too difficult due to the complexity or amount of the changes. Other methods like git filter-branch might be too slow. Now what?
[Enter BFG Repo Cleaner]
BFG is a tool that cleans git repositories of sensitive data. It is easy to use and faster than git filter-branch. Using BFG is easy because it expects "expressions" as input. An "expression" (see definition )은 중요한 데이터가 무엇인지, 검색 방법 및 편집 방법을 설명합니다. BFG는 명령줄 또는 로컬 파일의 입력으로 하나 이상의 식을 예상합니다.예
I will refer to the "expressions file" (see definition ) 예에서. 줄 바꿈으로 구분된 표현식 목록이 포함된 로컬 파일입니다.bfg 작성자는 스택 오버플로 응답에서 도구를 사용하는 방법에 대한 예를 제공했습니다(credits 참조).
$ bfg --replace-text replacements.txt -fi *.php my-repo.git
교체.txt
PASSWORD1
PASSWORD2==>examplePass
PASSWORD3==>
regex:password=\w+==>password=
regex:\r(\n)==>$1
표현 예
설명
비밀번호1
리터럴 문자열 'PASSWORD1'을 '***REMOVED***'(기본값)로 바꿉니다.
PASSWORD2==>examplePass
대신 'examplePass'로 교체
비밀번호3==>
빈 문자열로 교체
정규식:비밀번호=\w+==>비밀번호=
정규식을 사용하여 바꾸기
정규식:\r(\n)==>$1
Windows 줄 바꿈을 Unix 줄 바꿈으로 바꾸기
예제 명령에서 모든 인수의 압축을 풀자
--replace-text replacements.txt
--replace-text <path: file location describing replacements>
replacements.txt
는 expressions file -fi *.php
-fi <glob: files to search>
.php
로 끝나는 모든 파일에서만 교체를 수행하도록 구성되었습니다.my-repo.git
<path: folder location of repo>
.
(점)을 입력으로 사용합니다.이메일 사용 사례
I want to use BFG to replace my old email since my github account uses a new email.
important note.
emails are best stored in configuration files, rather than hard coded into the source.
For this example, I will be using dummy emails.
$ bfg -rt replace-email.txt .
replace-email.txt
[email protected]==>[email protected]
[email protected]==>[email protected]
- [left part of the expression]:
[email protected]
is the old email I want to replace - [middle part of the expression]:
==>
indicates to bfg that I want to give it a value for replacing the old email - [right part of the expression]:
[email protected]
is the value that will replace the old email
-rt replace-email.txt
-rt
is the alternative form of --replace-text
replace-email.txt
is the path to the expressions file.
bfg를 실행하면 현재 분기가 새 커밋으로 다시 작성됩니다. 이 도구를 사용할 때 매우 주의하십시오! 문제가 발생할 경우 작업 중인 브랜치를 새 이름으로 체크아웃하여 복사본을 만드십시오.
정의
word | description |
---|---|
expression
대체할 "the what"및 "the how"를 설명하는 특수 구문 식 파일 새 줄로 구분된 expressions을 포함하는 파일입니다. 학점답변 re: git 히스토리의 파일에서 텍스트를 대체하는 방법은 무엇입니까? |
Reference
이 문제에 관하여(git: 중요한 데이터 제거 또는 교체 답변 re: git 기록의 파일에서 텍스트를 대체하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/isaacadams/git-removing-or-replacing-sensitive-information-22n6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)