Me pediste que tirara sin decirme con qué twig te quieres fusionar

TL; DR: Tengo una twig "rastreado" que no puedo extraer.

Así que aquí estoy en "bucket-4":

$ git branch -v bucket-1 410f7b5 * gh-53 * gh-48 * "Share App" bucket-2 7ed70a2 * upgrade to SOLR 3.3.0 bucket-3 400ffe4 * emergency fix prod issue * bucket-4 64c2414 Merge branch 'bucket-3' into bucket-4 master 8dc4854 [ahead 1] * gh-73 

Me gustaría hacer cambios desde mi control remoto:

 $ git pull You asked me to pull without telling me which branch you want to merge with, and 'branch.bucket-4.merge' in your configuration file does not tell me, either. Please specify which branch you want to use on the command line and try again (eg 'git pull <repository> <refspec>'). See git-pull(1) for details. If you often merge with the same branch, you may want to use something like the following in your configuration file: [branch "bucket-4"] remote = <nickname> merge = <remote-ref> [remote "<nickname>"] url = <url> fetch = <refspec> See git-config(1) for details. 

Hmm, extraño, pensé que ya agregué "bucket-4" como una twig de seguimiento. Veamos:

 $ git remote show origin * remote origin Fetch URL: git@github.com:abcd/main.git Push URL: git@github.com:abcd/main.git HEAD branch (remote HEAD is ambiguous, may be one of the following): bucket-3 master Remote branches: bucket-1 tracked bucket-2 tracked bucket-3 tracked bucket-4 tracked master tracked Local branches configunetworking for 'git pull': bucket-1 merges with remote bucket-1 bucket-2 merges with remote bucket-2 bucket-3 merges with remote bucket-3 master merges with remote master Local refs configunetworking for 'git push': bucket-1 pushes to bucket-1 (up to date) bucket-2 pushes to bucket-2 (up to date) bucket-3 pushes to bucket-3 (up to date) bucket-4 pushes to bucket-4 (local out of date) master pushes to master (fast-forwardable) 

De hecho, bucket-4 está marcado como "rastreado", pero de alguna manera está configurado para empujar, pero no para tirar.

Al mirar mi file .git/config , veo que tengo inputs "remotas" y "fusionar" para la mayoría de mis twigs, pero no para el segmento-4. ¿Cómo se lo considera "seguido" sin esto?

 [remote "origin"] url = git@github.com:abcd/main.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [branch "rel-2011-07-07"] remote = origin merge = refs/heads/rel-2011-07-07 [branch "bucket-1"] remote = origin merge = refs/heads/bucket-1 [branch "bucket-2"] remote = origin merge = refs/heads/bucket-2 [branch] autosetupmerge = true [branch "bucket-3"] remote = origin merge = refs/heads/bucket-3 

Veo que la solución probable aquí es agregar inputs remote/merge para bucket-4 en mi file de configuration. Pero, ¿cómo se considera "rastreado" sin esto? bucket-4 se creó localmente, luego se envió al server desde este repository, por lo que sospecho que de alguna manera no configuré el seguimiento correctamente para esta twig.

¿Hay alguna configuration que pueda agregar para hacer que todas las sucursales locales sigan sus controles remotos correctamente en el futuro?

Dice que el bucket-4 pushes to bucket-4 solo porque el valor pnetworkingeterminado al empujar una twig es empujarlo a uno con un nombre correspondiente en el control remoto. (Tenga en count que este sigue siendo el pnetworkingeterminado, incluso si la sucursal local está rastreando una sucursal de seguimiento remoto y la sucursal de seguimiento remoto corresponde a una sucursal con un nombre diferente en el repository remoto).

La forma más sencilla de configurar la asociación entre su bucket-4 y el bucket-4 en origin es asegurarse de que la próxima vez que presione, haga:

 git push -u origin bucket-4 

Alternativamente, puedes hacer:

 git branch --set-upstream bucket-4 origin/bucket-4 

Para responder un par de preguntas directamente:

¿Cómo se lo considera "seguido" sin esto?

En este caso, no lo es, no está rastreando la twig de seguimiento remoto en ningún sentido si no hay branch.bucket-4.merge o branch.bucket-4.remote en su configuration de git. La salida del git remote show origin solo le muestra dónde se empujará la bifurcación por defecto.

¿Hay alguna configuration que pueda agregar para hacer que todas las sucursales locales sigan sus controles remotos correctamente en el futuro?

No creo que exista. Cuando creaste bucket-4 localmente, como supongo que sucedió, la twig de seguimiento remoto no existía, por lo que no se puede configurar en ese punto; sería un comportamiento pnetworkingeterminado muy confuso. Solo debe recordar agregar -u a su primer git push de git push de esa twig a su repository en sentido ascendente.

Espero que sea de alguna ayuda.

git branch --set-upstream <branch> origin/<branch> ha quedado en desuso al less a partir de 1.8.2.3 (mi versión).

Use la git branch --set-upstream-to=origin/<branch> <branch> lugar.