커밋하기 전에 가능한 비밀을 검토하세요.
커밋 또는 푸시 전에 GitTree는 Possible secrets in this commit 또는 Possible secrets in this push을 표시할 수 있습니다. 스캔은 로컬이고 제한적입니다. Unstage File, Add to .gitignore, Commit Anyway 또는 Push Anyway를 사용할 수 있습니다. 경고는 비밀이 있다는 증거가 아니며, 침묵은 비밀이 없다는 증거가 아닙니다.
GitTree 무료로 작동합니다. 모든 로컬 Git 기능은 계정이 필요하지 않습니다.
시작하기 전에
- 비밀 경고는 무료 플랜의 일부입니다. Local secret warnings이 Warn before proceeding일 때 켜집니다.
- 스캔에서는 커밋에 대해 준비된 콘텐츠와 푸시에 대해 지원되는 발신 커밋 범위를 읽습니다. 파일 내용을 GitTree에 보내지 않습니다.
어디서 찾을 수 있나요?
- 경고는 커밋할 때 커밋 상자에서 열리거나 푸시할 때 푸시 흐름에서 열립니다.
- Preferences, Local secret warnings 설정: Warn before proceeding 또는 Off.
| 액션 | macOS | Windows 및 Linux |
|---|---|---|
| 커밋 | ⌘Enter | Ctrl+Enter |
| 환경설정 | ⌘, | Ctrl+, |
단계
경고를 읽어보세요
제목은 Possible secrets in this commit 또는 Possible secrets in this push입니다. 각 행에는 Private key, AWS access key, GitHub token, GitLab token, Slack token, Stripe live key, Google API key 또는 Sensitive file name와 같은 규칙 이름과 줄 번호가 있는 경우 줄 번호가 지정됩니다. 토큰은 마스크되어 있습니다. 개인 키는 Private key header으로 표시됩니다.
커밋에서 비밀을 유지하세요
Unstage File는 색인에서 해당 파일을 제거합니다. Add to .gitignore는 무시 규칙을 추가합니다. 대화 상자에는 무시 규칙이 준비된 콘텐츠를 제거하지 않으므로 파일도 언스테이지화된다는 메시지가 표시됩니다. 의도적으로 한 줄을 허용하려면 해당 줄에
gittree:allow-secret를 추가하세요. 그러면 해당 회선에 대한 경고가 중지됩니다. 아무것도 암호화하지 않습니다.원하는 경우에만 계속하세요.
Commit Anyway 또는 Push Anyway이 계속됩니다. Cancel는 공유하지 않고 커밋 상자 또는 푸시로 돌아갑니다. 일부 변경 사항이 검사되지 않은 경우 대화 상자에 검사되지 않은 내용이 표시됩니다. 깨끗한 결과가 아닌 불완전한 스캔으로 처리하십시오.
예상되는 결과
비밀이 더 이상 준비되지 않았거나 경고를 읽은 후 계속하기로 선택했습니다. 푸시하기 전에 다음 커밋의 차이점을 확인하세요. .gitignore 규칙은 이미 파일이 포함된 커밋을 다시 작성하지 않습니다.
스캔에서 다루지 않는 것
Local secret warnings에서는 검사가 로컬 및 제한적으로 유지되며 이를 끄는 것은 전체 앱에 대한 선택이라고 말합니다. 보고할 수 있는 간격은 The inspection limit was reached, Binary content was skipped, Lines longer than 4 KiB were skipped 및 Some content could not be inspected입니다. The optional secret scan was unavailable는 콘텐츠를 직접 검토해야 함을 의미합니다.
| 갭 | 해야 할 일 |
|---|---|
| 바이너리 콘텐츠를 건너뛰었습니다. | 파일을 직접 열어보세요. 스캔에서는 읽지 않습니다. |
| 4KiB보다 긴 줄을 건너뛰었습니다. | 편집기에서 해당 줄을 검색하세요. 축소된 라인의 토큰은 검사되지 않습니다. |
| 검사 한도에 도달했습니다. | 더 작은 파일 세트를 커밋하고 나머지를 읽으십시오. |
| 설정이 꺼짐 | 계속하기 전에 경고를 선택하기 전까지는 아무것도 검사되지 않습니다. |
규칙 및 준비된 파일 무시
대화상자에는 Ignore rules do not remove staged content. Unstage the file as well. git check-ignore이(가) 경로가 .gitignore과(와) 일치함을 표시할 수 있으며 git diff --cached는 여전히 해당 경로를 색인에 표시합니다. 언스테이징한 다음 커밋하세요. 규칙을 추가해도 이미 존재하는 커밋에서 파일은 제거되지 않습니다.
git diff --cached -- path/to/file
git restore --staged -- path/to/file
git check-ignore -v path/to/file비밀번호가 이미 원격 저장소에 있는 경우 .gitignore을(를) 변경하는 것만으로는 충분하지 않습니다. 이를 삭제하는 새 커밋이 필요하며, 이전 커밋에 해당 커밋이 포함되어서는 안 되는 경우 기록을 다시 작성해야 합니다. GitTree는 모든 클론의 비밀을 삭제할 것을 약속하지 않습니다. 후크가 커밋을 거부하도록 하려면 파일 무시 및 후크를 참조하세요.
일부러 한 줄 허용
Add gittree:allow-secret on a line to stop warning about it. 커밋해야 하는 줄에 해당 마커를 배치합니다(예: 실제 자격 증명이 아닌 고정 토큰). 마커는 파일에 표시됩니다. 라이브 키를 숨기는 데 사용하지 마십시오. Commit Anyway은 마커를 추가하지 않고 커밋합니다.
푸시 경고는 보내려는 커밋을 검토합니다. Possible secrets in this push은(는) 이미 커밋에 있는 파일을 스테이지 해제할 수 없습니다. 새로운 커밋으로 수정하거나 게시되지 않은 기록을 다시 작성한 다음 다시 푸시하세요. 임대 강제 푸시는 분기가 게시 취소될 때 안전한 다시 쓰기 푸시입니다. 자습서에서는 이 대화 상자가 필요하기 전의 일상적인 커밋을 다룹니다.
뭔가 잘못되면
“계속하기 전에 잠재적인 비밀을 검토해야 합니다.”
커밋 또는 푸시가 대화 상자에서 기다리고 있습니다. 언스테이징, 무시, 라인 허용을 선택하거나 어쨌든 커밋 또는 푸시를 선택합니다. 취소는 커밋을 위해 메시지와 작업 파일을 그대로 둡니다.
"규칙을 무시하면 준비된 콘텐츠가 제거되지 않습니다. 파일도 언스테이징됩니다."
.gitignore에 추가하면 무시 파일만 업데이트됩니다. Unstage File을 누르거나 git Restore --staged를 실행하면 다음 커밋에 경로가 포함되지 않습니다.
"일부 변경 사항이 검사되지 않았습니다."
스캔이 일찍 중지되었거나, 바이너리를 건너뛰거나, 4KiB가 넘는 라인을 건너뛰었습니다. 계속하기 전에 해당 파일을 직접 읽어보세요.
"선택적 비밀 스캔을 사용할 수 없습니다. 내용을 직접 검토하십시오."
GitTree에서 검사를 실행할 수 없습니다. 커밋은 깨끗한 것으로 인증되지 않았습니다. 차이점을 읽고 확인한 경우에만 커밋하세요.
질문
GitTree가 비밀을 찾기 위해 내 파일을 업로드합니까?
아니요. 설정에 따르면 검사는 로컬 및 제한적으로 유지됩니다. 대화 상자에서는 이 컴퓨터에 커밋하거나 푸시하려는 내용을 검토합니다.
깔끔한 대화는 비밀이 없다는 증거인가요?
아니요. 4KiB보다 긴 바이너리 콘텐츠와 줄은 건너뛰고 검사가 한계에 도달할 수 있으며 패턴이 모든 비밀과 일치하지 않습니다. 경고도 보장이 아닙니다.
.gitignore는 내가 이미 준비한 비밀을 제거합니까?
아니요. 규칙을 무시해도 준비된 콘텐츠는 제거되지 않습니다. 파일도 언스테이징합니다. 또한 규칙은 이전 커밋을 다시 작성하지 않습니다.
gittree:allow-secret은 무엇을 합니까?
라인에서는 해당 라인에 대한 경고를 중지합니다. 해당 줄은 여전히 텍스트로 커밋됩니다. 공유하려는 가치에만 사용하세요.
경고를 끌 수 있나요?
예. 환경설정 › 로컬 비밀 경고 › 꺼짐. 이는 앱 전반에 걸친 선택입니다. 다시 진행하기 전에 경고를 설정할 때까지 검사가 실행되지 않습니다.
