push - Come posso impostare GIT_SSL_NO_VERIFY solo per repository specifici?




tag checkout (8)

Se sei su un computer Windows e hai installato Git, puoi provare i seguenti passaggi:

  1. Vai alla cartella di installazione di Git, es: C: \ Programmi (x86) \ Git \ etc
  2. Modifica il file: gitconfig
  3. Sotto la sezione [http] , aggiungi la riga: sslVerify = false

    [http]
      sslVerify = false
    

Devo usare un server git senza certificati adeguati, ma non voglio farlo

env GIT_SSL_NO_VERIFY=true git command

ogni volta faccio un'operazione git. Ma vorrei anche lasciare SSL abilitato per altri repository git. C'è un modo per rendere questo locale per un singolo repo?


Su Linux, se lo chiami all'interno della cartella del repository git:

git config http.sslVerify false

questo aggiungerà sslVerify = false nella sezione [http] del file di config nella cartella .git , che può anche essere la soluzione, se si desidera aggiungerla manualmente con nano .git/config :

...
[http]
  sslVerify = false

Puoi fare come segue

Per un singolo repo

git config http.sslVerify false

Per tutti i pronti contro termine

git config --global http.sslVerify false

C'è un modo semplice di configurare GIT per gestire il tuo server nel modo giusto. Basta aggiungere una specifica sezione http per il tuo server Git e specificare quale certificato (Base64 codificato) considerare attendibile:

~ / .gitconfig

[http "https://repo.your-server.com"]
# windows path use double back slashes
#  sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer
# unix path to certificate (Base64 encoded)
sslCaInfo = /home/<user>/repo.your-server.com.cer

In questo modo non avrai più errori SSL e convalidi il certificato (solitamente) autofirmato. Questo è il modo migliore per andare, poiché ti protegge dagli attacchi man-in-the-middle. Quando disabiliti la verifica ssl, sei vulnerabile a questo tipo di attacchi.

https://git-scm.com/docs/git-config#git-config-httplturlgt


Come quello che ha detto Thirumalai, ma all'interno del deposito clonato e senza - --global . Vale a dire,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false

per Windows, se si desidera la configurazione globale, quindi eseguire

git config --global http.sslVerify false

In particolare se hai bisogno di cloni ricorsivi

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git

Ho questa soluzione .

  1. Ottieni l'ID del commit in cui il file è stato eliminato utilizzando uno dei seguenti modi.

    • git log --grep=*word*
    • git log -Sword
    • git log | grep --context=5 *word*
    • git log --stat | grep --context=5 *word* git log --stat | grep --context=5 *word* # raccomandato se non ricordi quasi nulla
  2. Dovresti ottenere qualcosa del tipo:

commit bfe68bd117e1091c96d2976c99b3bcc8310bebe7 Autore: Alexander Orlov Data: gio 12 maggio 23:44:27 2011 +0200

replaced deprecated GWT class
- gwtI18nKeySync.sh, an outdated (?, replaced by a Maven goal) I18n generation script

commit 3ea4e3af253ac6fd1691ff6bb89c964f54802302 Autore: Alexander Orlov Data: gio 12 maggio 22:10:22 2011 +0200

3 . Ora usando l'id di commit bfe68bd117e1091c96d2976c99b3bcc8310bebe7 fai:

git checkout bfe68bd117e1091c96d2976c99b3bcc8310bebe7^1 yourDeletedFile.java

Siccome l'id di commit fa riferimento al commit in cui il file è stato già eliminato, devi fare riferimento al commit appena prima di bfe68b che puoi fare aggiungendo ^1 . Questo significa: dammi il commit subito prima di bfe68b.





git ssl