Falló el empuje con el repository de Git desnudo

Tengo un master repo master y remoto y una cloud sucursal local que he configurado para rastrearlo con

 git branch cloud -u amazon/master 

pero

 git push 

resultados en

fatal: la twig ascendente de su twig actual no coincide con el nombre de su twig actual.

He intentado con la solución sugerida en una pregunta relacionada (que es, por lo que puedo decir, lo que he hecho arriba), pero recibe el mismo error.

¿Cómo obtengo el seguimiento de configuration para que git push solo presione el control remoto?


Las partes relevantes de mi config :

 [remote "amazon"] url = ssh://ubuntu@ecXXXXXXXX.us-west-2.compute.amazonaws.com/home/ubuntu/mlcode.git fetch = +refs/heads/*:refs/remotes/amazon/* [branch "cloud"] remote = amazon merge = refs/heads/master 

Corriendo

 git config push.default upstream 

le dará el comportamiento deseado.

De acuerdo con la documentation de git config , el comportamiento pnetworkingeterminado en la versión 2.0 es

  • simple : en el flujo de trabajo centralizado, trabaje como flujo ascendente con una security adicional para rechazar empujar si el nombre de la twig ascendente es diferente del local.

    Cuando empuje hacia un control remoto que es diferente del control remoto del que normalmente sale, trabaje como lo hace actualmente. Esta es la opción más segura y es adecuada para principiantes.

Por el contrario, el modo upstream opera de la siguiente manera.

  • upstream : vuelva a insert la bifurcación actual en la bifurcación cuyos cambios suelen estar integrados en la bifurcación actual (que se denomina @{upstream} ). Este modo solo tiene sentido si está presionando al mismo repository del que normalmente extraería ( es decir , el flujo de trabajo central).

Trabajando con un repository similar al tuyo

 $ git branch * cloud master 

y nada en mi manga

 $ git config --unset push.default 

intentar presionar produce el mismo error. El modo detallado ( -v ) está ahí para que puedas ver lo que está haciendo git.

 $ git push -v fatal: The upstream branch of your current branch does not match the name of your current branch. To push to the upstream branch on the remote, use git push amazon HEAD:master To push to the branch of the same name on the remote, use git push amazon cloud To choose either option permanently, see push.default in 'git help config'. 

Después de un cambio de configuration

 $ git config push.default upstream 

obtienes el comportamiento descrito en tu pregunta.

 $ git push -v Pushing to .../amazon/ To .../amazon/ = [up to date] cloud -> master updating local tracking ref 'refs/remotes/amazon/master' Everything up-to-date