¿Por qué git checkout crea una twig que rastrea una twig remota?

Tengo dos twigs en repository remoto: maestro y desarrollo.

Ahora, después de clonar el repository, estaba en la ÚNICA twig local llamada master . Después git checkout development , este es el post que recibí:

Desarrollo de sucursales establecido para rastrear el desarrollo de sucursales remotas desde el origen. Cambiado a una nueva twig 'desarrollo'

¿Cómo diablos podría ser eso? No especifiqué el -b para crear una nueva twig local. Si hago git checkout adasdasd en git checkout adasdasd lugar, obtengo el error: pathspec 'asdasdasd' did not match any file(s) known to git. , lo cual tiene sentido Pero, ¿se trata simplemente de un comportamiento de git pnetworkingeterminado (crear una twig local si el nombre especificado en la comprobación coincide con la twig remota)?

En resumen, parece que el git checkout development , se ejecuta por primera vez, en realidad realiza git checkout -b development origin/development .

Sí, si realiza una compra en una sucursal que existe como control remoto, se supone que desea crear una sucursal que rastree la sucursal remota.

De los documentos:

Si no se encuentra pero existe una twig de seguimiento en exactamente un control remoto (llámelo <remoto>) con un nombre coincidente, trátelo como equivalente a

 $ git checkout -b <branch> --track <remote>/<branch> 

Esto es obviamente muy útil la mayor parte del time; esto es generalmente lo que la gente quiere hacer. Si quería que su sucursal se basara en su actual, y no en la sucursal de seguimiento remoto con el mismo nombre, o si hay una colisión de nombre, entonces es molesto.

Si haces git checkout -b foo esto no sucederá. Tenga en count que si todavía no tiene una twig llamada foo esto es lo que quiere de todos modos.

Eso simplemente significa que el repository que clonó tiene la twig de development en remoto (GitHub).

Cuando lo clonaste, todas las twigs remotas también se clonaron. Es por eso que el git checkout development funcionó (lo cambió a la twig de development ).

Si encuentra esto inesperado, puede eliminarlo del control remoto:

 git push origin --delete development 

Para insert una twig en el control remoto, probablemente lo haya hecho cuando presionó su twig en GitHub:

 git push origin development # or git push --all # this will push all your branches