Git fatal: il protocollo 'https' non è supportato


190

Sto esaminando la guida ai fork di Github: https://guides.github.com/activities/forking/ e sto cercando di clonare il repository sul mio computer. Tuttavia, eseguendo il comando:

$ git clone https://github.com/./Spoon-Knife.git
Cloning into 'Spoon-Knife'...
fatal: protocol 'https' is not supported

Provato anche con SSH:

$ git clone git@github.com:./Spoon-Knife.git
Cloning into 'Spoon-Knife'...
Warning: Permanently added the RSA host key for IP address '.' to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Devo modificare alcune impostazioni di configurazione sul mio computer o si tratta di un problema con GitHub?

Modifica: ho sostituito il mio nome utente e indirizzo IP con "."


2
Puoi controllare se ci sono strani caratteri speciali nel testo copiato. Forse prova a digitare l'intero URL invece di copiarlo da Github. E forse controlla anche se github.com si risolve davvero in github o se c'è qualcosa che lo reindirizza a un altro server.
lw1.at

1
O forse qualche altro software sul computer danneggiato il git intstalled (vedi stackoverflow.com/questions/15553161/... ). In tal caso, la reinstallazione potrebbe risolvere il problema.
lw1.at

2
Grazie per qualche motivo ho riavviato la riga di comando e ora funziona ...
Hank Lin

Risposte:


565

Il problema è probabilmente questo.

Hai provato a incollarlo usando

  • CTRL + V

prima e non ha funzionato, quindi sei andato avanti e incollato con il classico

  • Right Click - Incolla**.

Purtroppo ogni volta che inserisci CTRL+ V sul terminale si aggiunge

  • un nascosto ^?

(almeno sulla mia macchina codificava così).

il personaggio che appare solo dopo di te

  • backspace

(vai avanti e provalo su git bash).

Quindi il tuo link diventa ^?https://...

che non è valido.


24
questa è la soluzione!
devman

27
non riesco a credere che dobbiamo affrontare cose come questa. Personaggi invisibili che prolungano il tuo lavoro. Grazie! Ha funzionato per me.
Eterno

3
Grazie! Ho cancellato e riscritto la h di https e funziona!
Walter Cejas,

2
Questo è stato. Sto usando MINGW. Ho provato ctrl + v e maiusc + ctrl + v prima di incollarlo e non è riuscito, ma dopo aver riprovato a utilizzare l'opzione incolla GUI ha clonato correttamente il mio repository. Grazie!
Frank,

3
Voglio sposare questa risposta <3
croccante

22

Modifica: questo particolare problema degli utenti è stato risolto avviando una nuova sessione terminale.

A ?prima del protocollo (https) non è supportato. Tu vuoi questo:

git clone git@github.com:octocat/Spoon-Knife.git

o questo:

git clone https://github.com/octocat/Spoon-Knife.git

Selezione della posizione da clonare


Scusa, non sono sicuro del perché il "?" è apparso quando l'ho copiato dalla riga di comando. Ho modificato il mio post.
Hank Lin,

Prova uno di questi comandi per me, non so perché hai un .dopo il github.com/ma non è giusto.
TomDunning,

2
Grazie- Ho riavviato la riga di comando e per qualche motivo ora funziona. Sono ancora molto confuso perché all'inizio non ha funzionato.
Hank Lin,

1
Ho anche risolto il problema aprendo una nuova riga di comando. Ho controllato l'opzione per aprire Git Bash durante l'installazione di Git e l'ho usato per git clonare la prima volta. Questa potrebbe essere la causa.
Staccato Laconian

2
Il riavvio del mio terminale ha risolto il problema
Elkas


8

Usa solo virgolette doppie con URL, come: git clone "https://yourRepoUrl"

(In qualche modo vede che stai usando 2 virgolette all'inizio, non so perché).

Stavo ottenendo lo stesso errore => fatal: protocol ''https' is not supported(puoi vedere 2 virgolette su https).


4

Sta succedendo qualcosa di sospetto. Probabilmente un bug github che non è coerente (test A / B?)

Sono su windows10, usando Firefox. Ho appena copiato un URL di checkout e ho ottenuto un carattere in più. Ma solo la prima volta. Una seconda volta non c'era. Ho dovuto guardare il mio file di cronologia per vederlo!

ecco la mia storia:

git clone --recursive https://github.com/amzeratul/halley-template
git clone --recursive http://github.com/amzeratul/halley-template
git clone --recursive github.com/amzeratul/halley-template
git clone --recursive https://github.com/amzeratul/halley-template

il comando history non mostra il carattere extra. Proprio come non è stato riprodotto quando lo stavo copiando e incollando nel terminale. Puoi vedere come ho provato a rimuovere la 's' e quindi l'intero protocollo? Sono stato attivato solo per indagare ulteriormente quando il tasto backspace ha spostato un carattere in meno di quanto mi aspettassi!

Ho salvato il mio file cronologico della shell su una macchina con un editor esadecimale e:

00000000  xx xx xx xx xx xx xx 0a  67 69 74 20 63 6c 6f 6e  |xxxxxxx.git clon|
00000010  65 20 2d 2d 72 65 63 75  72 73 69 76 65 20 c2 96  |e --recursive ..|
00000020  68 74 74 70 73 3a 2f 2f  67 69 74 68 75 62 2e 63  |https://github.c|
00000030  6f 6d 2f 61 6d 7a 65 72  61 74 75 6c 2f 68 61 6c  |om/amzeratul/hal|
00000040  6c 65 79 2d 74 65 6d 70  6c 61 74 65 0a 67 69 74  |ley-template.git|
00000050  20 2d 2d 68 65 6c 70 0a  67 69 74 20 75 70 64 61  | --help.git upda|
00000060  74 65 2d 67 69 74 2d 66  6f 72 2d 77 69 6e 64 6f  |te-git-for-windo|
00000070  77 73 0a 67 69 74 20 63  6c 6f 6e 65 20 2d 2d 72  |ws.git clone --r|
00000080  65 63 75 72 73 69 76 65  20 c2 96 68 74 74 70 73  |ecursive ..https|
00000090  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 61 6d  |://github.com/am|
000000a0  7a 65 72 61 74 75 6c 2f  68 61 6c 6c 65 79 2d 74  |zeratul/halley-t|
000000b0  65 6d 70 6c 61 74 65 0a  63 75 72 6c 20 2d 2d 76  |emplate.curl --v|
000000c0  65 72 73 69 6f 6e 0a 63  64 20 63 6f 64 65 0a 67  |ersion.cd code.g|
000000d0  69 74 20 63 6c 6f 6e 65  20 2d 2d 72 65 63 75 72  |it clone --recur|
000000e0  73 69 76 65 20 c2 96 68  74 74 70 73 3a 2f 2f 67  |sive ..https://g|
000000f0  69 74 68 75 62 2e 63 6f  6d 2f 61 6d 7a 65 72 61  |ithub.com/amzera|
00000100  74 75 6c 2f 68 61 6c 6c  65 79 2d 74 65 6d 70 6c  |tul/halley-templ|
00000110  61 74 65 0a 67 69 74 20  63 6c 6f 6e 65 20 2d 2d  |ate.git clone --|
00000120  72 65 63 75 72 73 69 76  65 20 c2 96 68 74 74 70  |recursive ..http|
00000130  3a 2f 2f 67 69 74 68 75  62 2e 63 6f 6d 2f 61 6d  |://github.com/am|
00000140  7a 65 72 61 74 75 6c 2f  68 61 6c 6c 65 79 2d 74  |zeratul/halley-t|
00000150  65 6d 70 6c 61 74 65 0a  67 69 74 20 63 6c 6f 6e  |emplate.git clon|
00000160  65 20 2d 2d 72 65 63 75  72 73 69 76 65 20 67 69  |e --recursive gi|
00000170  74 68 75 62 2e 63 6f 6d  2f 61 6d 7a 65 72 61 74  |thub.com/amzerat|
00000180  75 6c 2f 68 61 6c 6c 65  79 2d 74 65 6d 70 6c 61  |ul/halley-templa|
00000190  74 65 0a 67 69 74 20 63  6c 6f 6e 65 20 2d 2d 72  |te.git clone --r|
000001a0  65 63 75 72 73 69 76 65  20 68 74 74 70 73 3a 2f  |ecursive https:/|
000001b0  2f 67 69 74 68 75 62 2e  63 6f 6d 2f 61 6d 7a 65  |/github.com/amze|
000001c0  72 61 74 75 6c 2f 68 61  6c 6c 65 79 2d 74 65 6d  |ratul/halley-tem|
000001d0  70 6c 61 74 65 0a                                 |plate.|
000001d6

C'è un c2 96carattere inserito prima dell'URL. Non ho idea di cosa sia. Non è esteso ASCII (dove sarebbe –) ed è stato nascosto da quasi tutti i posti che ho incollato mentre era negli Appunti. Il più vicino che ho trovato con questo valore esadecimale sarebbe https://www.fileformat.info/info/unicode/char/c298/index.htm ma non ho visto il prefisso utf da nessuna parte (di nuovo, potrebbe essere andato perso )

Tutto ciò potrebbe essere fuorviante poiché ho perso la pagina / gli appunti e sto lavorando esclusivamente dal file di cronologia della shell salvato, che potrebbe benissimo mancare di dati dal bug originale / iniezione dannosa.


2

Problema

git clone https://github.com/rojarfast1991/TestGit.git fatal: il protocollo 'https' non è supportato

Soluzione:

passi:

(1): - Aprire il nuovo terminale e clonare il repository git

git clone https://github.com/rojarfast1991/TestGit.git

(2) Si aprirà il prompt di login automatico di git e ti verrà chiesto di inserire le credenziali dell'utente.

Nome utente: - xxxxxxx

PassWord: - xxxxxxx

Infine, inizierà la clonazione ...

git clone https://github.com/rojarfast1991/TestGit.git
Cloning into 'TestGit'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), done.

1

Ho riscontrato lo stesso problema dopo aver appena installato git su Windows 10 e averlo eseguito per la prima volta. Il riavvio della finestra bash ha risolto il problema.


1

Usa http invece di https ; darà un messaggio di avviso e reindirizzerà a https, verrà clonato senza problemi.

$ git clone http://github.com/karthikeyana/currency-note-classifier-counter.git
Cloning into 'currency-note-classifier-counter'...
warning: redirecting to https://github.com/karthikeyana/currency-note-classifier-counter.git
remote: Enumerating objects: 533, done.
remote: Total 533 (delta 0), reused 0 (delta 0), pack-reused 533
Receiving objects: 100% (533/533), 608.96 KiB | 29.00 KiB/s, done.
Resolving deltas: 100% (295/295), done.

0

Ho avuto lo stesso problema, tutto quello che ho fatto è stato riavviare la riga di comando e quindi passare alla cartella documenti anziché alla cartella utente utilizzando il comando '' documenti cd ''. Dovrebbe essere tutto ciò che è necessario. Assicurati anche che il link sia corretto.


0

È possibile che tu stia utilizzando un computer Windows o Linux in cui non hai effettuato l'accesso a git hub, quindi il certificato non è verificato. Dal sistema in cui viene visualizzato l'errore, accedere a github con le credenziali, quindi provare a utilizzare il comando funzionerà. In bocca al lupo



0

Ho provato molti modi per risolverlo. Ma ho fallito ancora e ancora. Quindi ho fatto questo:

Aperto Git Bash> vai al tuo directory> incollare il git clone https://shahadat@bitbucket.org/*******.gitdopo che un prompt dei comandi verrà mostrato a dare le credenziali di accesso. Fornisci le credenziali e clona il tuo progetto.


0
Hai provato questo:

clt + V

Basta fare clic destro e fare clic su incolla

Spero che questo funzioni


0

Ho avuto questo errore quando stavo cercando di essere intelligente ed estrarre l'URL di clonazione dall'URL del repository. Ho sbagliato Stavo facendo:

git@https://github.company.com/Project/Core-iOS

dove dovevo fare:

git@github.company.com:Project/Core-iOS.git

Ho avuto 3 errori:

  • non l'ha fatto https://
  • dopo .comho bisogno :invece di/
  • alla fine ho bisogno di un .git

0

Questo problema è persistito anche dopo la correzione della maggior parte delle risposte votate.

Più specifico, ho incollato nel link senza "Ctrl + v", ma ha comunque dato fatal: protocol 'https' is not supported.

Ma se copi quel messaggio in Windows o nella barra di ricerca di Google, vedrai che il messaggio reale è fatal: protocol '##https' is not supported, dove '#' sta per questo personaggio . Come puoi vedere, quei 2 personaggi non sono stati rimossi.

Stavo lavorando su IntelliJ IDEA Community Edition 2019.2.3 e la seguente correzione si riferisce a questo strumento, ma la risposta è che quei 2 caratteri sono ancora lì e devono essere rimossi dal collegamento .

Correzione IntelliJ

Vai alla barra in alto, seleziona VCS -> Git -> Telecomandi ... e fai clic.

Ora si aprirà qualcosa che collega questo

inserisci qui la descrizione dell'immagine

Puoi vedere quei 2 personaggi non riconosciuti. Dobbiamo rimuoverli. Fare clic sull'icona Modifica ed eliminare quei 2 caratteri oppure è possibile eliminare il collegamento e aggiungerne uno nuovo.

Assicurati di avere la cartella ".git" nella cartella del tuo progetto .

inserisci qui la descrizione dell'immagine

E ora dovrebbe piacere così. Fai clic su "Ok" e ora puoi inviare i file al tuo repository git.

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.