git: no se puede crear una twig ascendente

El problema

Voy a hacer bananas debido a esta idiosincrasia de git (o github?). Creé una nueva twig, pero no puedo enviarla al repository de upstream en github. Esta no es la primera twig que estoy promoviendo en este repository, y todo ha ido bien hasta ahora.

Tutorial

Creé una nueva sucursal:

$ git checkout -b adam/no-push-bugfix 

Realizó algunos cambios en un file y agregó algunos (esto significa que algunos de los cambios no se confirmaron):

 $ git add --patch path/to/some/file 

Se aseguró de que los cambios sean correctos:

 $ git diff --staged $ git commit -v $ git status 

Y trató de empujar:

 $ git push --set-upstream origin adam/no-push-bugfix $ fatal: adam/whatever-name-bugfix cannot be resolved to branch. 

¿Alguna idea de por qué mi nueva twig es rechazada desde el inicio?

No pude encontrar la explicación correcta para este problema en Internet. Así que estoy agregando esto para ayudar a otras personas a entender el problema.

El nombre de la twig de Git distingue entre mayúsculas y minúsculas y está asignado a un file / directory en el repository (no siempre, pero es común para una nueva twig). Como resultado, la diferencia de caso en el nombre de la sucursal git puede causar un problema como en su caso. En este caso particular, vemos que las twigs existentes se inician con "Adam /". Significa que existe una carpeta con el nombre "Adam" en .git / refs / heads. Cuando intenta presionar a una bifurcación con un nombre que comenzó con "adam /", entra en conflicto con la carpeta que sale.

TL; DR – revisa la twig nuevamente.

Por extraño que parezca, parece que he estado fuera de la twig de alguna manera. El prompt oh-my-zsh muestra que estoy en la twig, pero la git branch muestra que no estoy en ninguna twig:

enter image description here

Después de que git checkout Adam/no-push-bugfix , parezca estar en la twig:

enter image description here

Ahora todo funciona bien, y puedo empujar la twig hacia arriba. No estoy seguro de cuál es el problema (hay una diferencia de caso, por ejemplo, entre adam y Adam ).