Cómo empujar hacia arriba en Git?

Tengo un proyecto con algunos amigos en GitLab, y por supuesto existe la twig principal, y hay algunos otros también. Cuando cloné el repository, también creé un upstream con el command git remote add upstream ...

Luego, git fetch upstream el git fetch upstream . Seguido de git checkout upstream/test1 . Ahora, si git branch -a , obtengo un resultado como este:

 * (HEAD detached at upstream/test1) master remotes/origin/HEAD -> origin/master remotes/origin/master remotes/upstream/test1 remotes/upstream/master 

Esto está bien, pero luego hice algunos cambios al código en mi twig upstream/test1 . Todavía no quiero presionarlos para el origin/test1 , pero quiero poder impulsar mis cambios hacia upstream/test1 para que mi otro amigo pueda verlos. Pero si emite el siguiente set de commands:

 git add . git commit -m "Sample message" 

Después de la confirmación recibí el post:

 [detached HEAD 4f20e95] Sample message 5 files changed, 12 insertions(+), 1 deletions(-) 

Y el valor hash cambia a 4f20e95 en mi símbolo del sistema. Entonces, si hago git push , recibo los siguientes posts de error:

 fatal: You are not currently on a branch. To push the history leading to the current (detached HEAD) state now, use git push origin HEAD:<name-of-remote-branch> 

¿Cómo puedo presionar en mi twig ascendente sin llegar al origen?

La twig upstream/test1 es una twig de seguimiento remoto, que no se puede actualizar manualmente. Estas twigs rastrean sucursales en serveres remotos, y solo se actualizan durante git fetch / git push .

En su lugar, consulte primero una nueva sucursal local:

 git checkout -b test1 upstream/test1 

Y cometer allí como de costumbre. Como ya te has comprometido, hazlo en cambio:

 git checkout -b test1 4f20e95 

Cuando esté listo, empuje hacia upstream :

 git push upstream test1 

Cuando haces una simple git push , Git usa los valores pnetworkingeterminados para el control remoto y la twig para enviar basándose en ciertas opciones de configuration. Sin embargo, si no estás en una twig (obteniendo así el post detached HEAD ), entonces Git no sabe qué twig presionar, por lo que te dará el error que recibiste.