Vai al contenuto
GitTree
Cambiamenti e commit

Esamina i possibili segreti prima di fare commit

Prima di un commit o un push, GitTree può mostrare Possible secrets in this commit o Possible secrets in this push. La scansione è locale e limitata. Puoi Unstage File, Add to .gitignore, Commit Anyway o Push Anyway. Un avvertimento non è una prova che un segreto sia presente, e il silenzio non è una prova che uno sia assente.

GratuitoAggiornato

Funziona in GitTree Gratuito: tutte le funzionalità Git locali, senza bisogno di un account.

In questa pagina
  1. Prima di iniziare
  2. Dove trovarlo
  3. Passi
  4. Risultato atteso
  5. Ciò che la scansione non copre
  6. Ignora le regole e i file in stage
  7. Consenti una riga apposta
  8. Se qualcosa va storto
  9. Domande
  10. Relativo

Prima di iniziare

  • Gli avvisi segreti fanno parte del piano gratuito. Sono attivi quando Local secret warnings è Warn before proceeding.
  • La scansione legge il contenuto organizzato per un commit e un intervallo di commit in uscita supportato per un push. Non invia il contenuto del file a GitTree.

Dove trovarlo

  • L'avviso si apre dalla casella di commit quando esegui il commit o dal flusso push quando esegui il push.
  • Preferences, l'impostazione Local secret warnings: Warn before proceeding o Off.
AzionemacOSWindows e Linux
Fare commit⌘EnterCtrl+Enter
Preferenze⌘,Ctrl+,

Passi

  1. Fai commit o invia come al solito

    Metti in stage i file e scrivi il messaggio, oppure avvia il push. Se la scansione trova un probabile segreto, GitTree si interrompe e apre la finestra di dialogo invece di terminare. Il tuo messaggio e i file di lavoro vengono conservati quando la finestra di dialogo è quella di commit. La finestra di dialogo push dice che la correzione di un segreto già confermato richiede un nuovo commit o una riscrittura.

    La casella di commit con un campo messaggio, opzioni e la riga degli hook
    L'avviso di commit si apre da questa casella. L'immagine mostra ancora il compositore, non la finestra di dialogo di avviso.GitTree interfaccia con un repository dimostrativo.
  2. Leggi l'avvertimento

    Il titolo è Possible secrets in this commit o Possible secrets in this push. Ogni riga nomina una regola, ad esempio Private key, AWS access key, GitHub token, GitLab token, Slack token, Stripe live key, Google API key o Sensitive file name e un numero di riga quando ne ha uno. I token sono mascherati. Una chiave privata viene visualizzata come Private key header.

  3. Mantieni il segreto fuori dal commit

    Unstage File rimuove quel file dall'indice. Add to .gitignore aggiunge una regola da ignorare. La finestra di dialogo dice che le regole di ignoranza non rimuovono il contenuto organizzato, quindi rimuovi anche il file. Per consentire una riga appositamente, aggiungi gittree:allow-secret su quella riga. Ciò interrompe l'avviso per la linea. Non crittografa nulla.

  4. Continua solo se intendi farlo

    Commit Anyway o Push Anyway continua. Cancel ti riporta alla casella di commit o al push senza condivisione. Se alcune modifiche non sono state controllate, la finestra di dialogo lo indica. Consideralo come una scansione incompleta, non come un risultato pulito.

Risultato atteso

O il segreto non è più in stage oppure hai scelto di continuare dopo aver letto l'avviso. Controlla la differenza del commit successivo prima di eseguire il push. Una regola .gitignore non riscrive un commit che contiene già il file.

Ciò che la scansione non copre

Local secret warnings afferma che l'ispezione rimane locale e limitata e che disattivarla è una tua scelta per l'intera app. Le lacune che può segnalare sono The inspection limit was reached, Binary content was skipped, Lines longer than 4 KiB were skipped e Some content could not be inspected. The optional secret scan was unavailable significa che dovresti rivedere i contenuti tu stesso.

Perché un segreto può sfuggire
DivarioCosa fare
Il contenuto binario è stato saltatoApri tu stesso il file. La scansione non lo legge.
Le righe più lunghe di 4 KiB sono state saltateCerca quella riga in un editor. Un token su una linea minimizzata non viene scansionato.
È stato raggiunto il limite di ispezioneEffettua il commit di un set di file più piccolo e leggi il resto.
L'impostazione è disattivataNon verrà scansionato nulla finché non si sceglie Avvisa prima di procedere.

Ignora le regole e i file in stage

La finestra di dialogo dice che Ignore rules do not remove staged content. Unstage the file as well. git check-ignore può mostrare che un percorso corrisponde a .gitignore mentre git diff --cached lo mostra ancora nell'indice. Disattivalo, quindi esegui il commit. L'aggiunta di una regola non rimuove il file dai commit già esistenti.

git diff --cached -- path/to/file
git restore --staged -- path/to/file
git check-ignore -v path/to/file

Se il segreto è già sul remoto, modificare .gitignore non è sufficiente. È necessario un nuovo commit che lo elimini e una riscrittura della cronologia se i commit precedenti non devono contenerlo. GitTree non promette di cancellare un segreto da ogni clone. Vedi ignore files e hooks se vuoi che anche un hook rifiuti il ​​commit.

Consenti una riga apposta

Add gittree:allow-secret on a line to stop warning about it. Metti l'indicatore sulla riga che dovrebbe essere confermata, ad esempio un token di un appuntamento che non è una vera credenziale. Il marcatore è visibile nel file. Non utilizzarlo per nascondere una chiave attiva. Commit Anyway esegue il commit senza aggiungere il marcatore.

Gli avvisi push esaminano i commit che stai per inviare. Possible secrets in this push non può rimuovere dallo stage un file che è già in un commit. Risolvi il problema con un nuovo commit o riscrivi la cronologia non pubblicata, quindi esegui nuovamente il push. Forza push con lease è il push di riscrittura sicuro quando il ramo non è pubblicato. Il tutorial copre i commit quotidiani prima che tu abbia bisogno di questa finestra di dialogo.

Se qualcosa va storto

"I potenziali segreti necessitano della tua revisione prima di procedere."

Il commit o il push è in attesa nella finestra di dialogo. Annulla la fase, ignora, consenti la linea o scegli Commit Anyway o Push Anyway. Annulla lascia il messaggio e i file di lavoro sul posto per un commit.

"Ignora le regole non rimuove il contenuto in stage. Annulla anche il file."

Aggiungi a .gitignore aggiorna solo il file da ignorare. Premi Unstage File o esegui git Restore --staged, in modo che il commit successivo non includa il percorso.

"Alcuni cambiamenti non sono stati ispezionati."

La scansione si è interrotta anticipatamente, ha saltato un file binario o una riga superiore a 4 KiB. Leggi tu stesso quei file prima di continuare.

"La scansione segreta opzionale non era disponibile. Controlla tu stesso il contenuto. "

GitTree non ha potuto eseguire la scansione. Il commit non è certificato pulito. Leggi il diff, quindi confermati solo se lo hai controllato.

Domande

GitTree carica i miei file per cercare segreti?

No. L'impostazione dice che l'ispezione rimane locale e limitata. La finestra di dialogo esamina ciò che stai per confermare o inviare su questo computer.

Un dialogo pulito dimostra che non ci sono segreti?

No. Il contenuto binario e le righe più lunghe di 4 KiB vengono saltati, l'ispezione può raggiungere un limite e i modelli non corrispondono a tutti i segreti. Anche un avvertimento non è una garanzia.

.gitignore rimuove un segreto che ho già messo in stage?

No. Ignorare le regole non rimuove il contenuto in stage. Disattiva anche il file. Inoltre, una regola non riscrive i vecchi commit.

Cosa fa gittree:allow-secret?

Su una riga, interrompe l'avviso per quella riga. La riga è ancora confermata come testo. Usalo solo per un valore che intendi condividere.

Posso disattivare gli avvisi?

SÌ. Preferenze › Avvisi segreti locali › Disattivato. Questa è una scelta a livello di app. La scansione non viene eseguita finché non si imposta Avvisa prima di procedere nuovamente.