Pregunta
Tengo un repositorio público en github.com con 2 ramas: master
y test
He creado un nuevo directorio local y lo hice:
[ ] git clone git@github.com:{username}/{projectname}.git
A continuación, he creado una nueva rama llamada my_test
con
[ ] git branch my_test
y cambió a la misma.
[ ] git checkout my_test
A continuación, Fusioné de mi rama test
de mi repositorio público con
[ ] git merge origin/test
y resultó en un avance rápido.
he hecho algunos cambios y los entregó.
Luego trató de empujar la rama my_test
local para la rama test
público en github con
[ ] git push git@github.com:{username}/{projectname}.git test
pero me dio este error:
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
¿Qué estoy haciendo mal?
Solución
Tal vez trate de:
git push git@github.com:{username}/{projectname}.git HEAD:test
El formato del último parámetro en la línea de comandos que es un refspec , que es una fuente de referencia seguido de dos puntos y luego el árbitro destino. También puede usar su nombre de la sucursal local (my_test
) en lugar de la cabeza para estar seguro de que está empujando la rama correcta.
La documentación de git push
tiene más detalles sobre este parámetro.
Otros consejos
Además, no es necesario que escribir la URL completa cada vez que quiere empujar. Cuando ejecutó el clon, Git guarda esa URL como 'origen', es por eso que se puede ejecutar algo así como 'fusionar origen / prueba' - que significa la rama 'prueba' en su servidor 'origen'. Por lo tanto, la forma más sencilla para empujar a su servidor en ese caso sería:
git push origin my_test:test
que empujará a su sucursal local 'my_test' a la rama 'prueba' en su servidor 'origen'. Si había nombrado su sucursal de la misma como la rama en el servidor, a continuación, los dos puntos no es NECESARIO, sólo tiene que hacer:
git push origin test
Este error también aparece si se intenta empujar a un nuevo repositorio sin tener nada cometido en primer lugar. Proveedores:
git add -A
git commit -am 'Initial commit'
Y luego probar su empuje de nuevo.
Creo que aquí se tendrá que configurar el seguimiento de la rama. Por favor, ejecute lo siguiente para habilitar el seguimiento
git branch --track my_test origin/my_test
Para probar
git push -u origin my_test
git pull origin my_test
Es necesario asegurarse de que su repositorio local tiene el mismo nombre que su repositorio remoto que está tratando de empujar.
En primer lugar, el cambio repositorio utilizando "prueba" rama git -m para que "my_test" sería "prueba". En segundo lugar, simplemente prueba de origen git push