remote password origin and git git-push git-config

password - git remote



Push.default "simple" versus "actual" en git para flujo de trabajo descentralizado (2)

La diferencia es que con simple , git push (sin pasar un refspec) fallará si la rama actual no está rastreando una rama ascendente remota (incluso si existe una rama con el mismo nombre en el control remoto):

$ git checkout -b foo Switched to a new branch ''foo'' $ git config push.default simple $ git push fatal: The current branch foo has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin foo

Por otro lado, a la current no le importa si la rama actual rastrea una corriente ascendente o no, solo quiere enviarla a cualquier rama que tenga el mismo nombre:

$ git config push.default current $ git push Total 0 (delta 0), reused 0 (delta 0) To /Documents/GitHub/bare * [new branch] foo-> foo

La documentación

De la documentación de configuración de Git :

  • upstream : empujar la rama actual a su rama ascendente ...

  • simple , como en sentido ascendente, pero se niega a presionar si el nombre de la rama ascendente es diferente del local ...

  • current : empuje la rama actual a una rama del mismo nombre.

Desde un punto de vista funcional, en un flujo de trabajo descentralizado, no veo la diferencia entre current opciones simple y las current para la push.default config push.default .

current empujará la rama actual a una rama con nombre idéntico en el control remoto especificado. simple hará efectivamente lo mismo tanto para los controles remotos como para los controles remotos sin seguimiento para la bifurcación actual (impone nombres de bifurcaciones idénticos en ambos casos).

¿Alguien puede explicar alguna diferencia importante entre los dos para los flujos de trabajo descentralizados que me falta?


La diferencia es que empuja simple a su rama de seguimiento si tiene el mismo nombre, mientras que la current empujará a una rama del mismo nombre independientemente de cualquier rama de seguimiento:

$ git branch -vvv master 58d9fdc [origin/master: ahead 1] t1 bobo * new 37132d3 [origin/save: ahead 1] t1 bibi # <- tracking branch ''save'' $ git -c push.default=current push # <- set `push.default=current` Counting objects: 3, done. Writing objects: 100% (3/3), 234 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To /home/jthill/sandbox/20/t1 * [new branch] new -> new # <- and push creates `new`