Domanda

Ho un archivio pubblico a github.com con 2 rami: master e test

.

ho creato una nuova directory locale e fatto:

[ ] git clone git@github.com:{username}/{projectname}.git

Poi ho creato una nuova filiale denominata my_test con

[ ] git branch my_test

e acceso ad esso.

[ ] git checkout my_test

Poi ho fuso dal mio ramo test del mio repository pubblico

[ ] git merge origin/test

e si è tradotto in un avanzamento rapido.

Ho fatto alcuni cambiamenti e li ha commessi. Poi ho provato a spingere il ramo my_test locale al ramo test pubblico presso github con

[ ] git push git@github.com:{username}/{projectname}.git test 

, ma ho ottenuto questo errore:

error: src refspec test does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git

Che cosa sto facendo di sbagliato?

È stato utile?

Soluzione

Forse provare:

git push git@github.com:{username}/{projectname}.git HEAD:test

Il formato del ultimo parametro su quella linea di comando è un refspec , che è una fonte Rif seguito da due punti e poi l'arbitro destinazione. È inoltre possibile utilizzare il nome del ramo locale (my_test) al posto della testa per essere certi si sta spingendo il ramo corretto.

La documentazione per git push ha più dettagli su questo parametro.

Altri suggerimenti

Inoltre, non è necessario digitare l'intero URL ogni volta che si vuole spingere. Quando è stato eseguito il clone, git salvato che URL, 'origine', è per questo che è possibile eseguire qualcosa di simile a 'unire origine / test' - significa che il ramo 'test' sul server 'di origine'. Quindi, il modo più semplice per spingere al server in questo caso sarebbe:

git push origin my_test:test

che spingerà il vostro 'my_test' filiale locale al ramo 'test' sul server 'di origine'. Se tu avessi chiamato la filiale locale lo stesso come il ramo sul server, quindi i due punti non è neccesary, semplicemente si può fare:

git push origin test

Questo errore è disponibile anche su se si cerca di spingere per un nuovo repository, senza aver commesso nulla prima. Prova:

git add -A
git commit -am 'Initial commit'

E poi tentare di nuovo la vostra spinta.

Credo che qui è necessario impostare il monitoraggio ramo. Si prega di eseguire quanto segue per abilitare il monitoraggio

git branch --track my_test origin/my_test

Per testare

git push -u origin my_test
git pull origin my_test

È necessario assicurarsi che il repository locale hanno lo stesso nome del repository remoto si sta cercando di spingere.

In primo luogo, il cambiamento repository utilizzando git branch -m "test" in modo che "my_test" sarebbe "test". In secondo luogo, proprio git push test di origine

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top