TL; DR: Tengo una rama "rastreado" que no puedo extraer.Usted me pidió que tire sin decirme qué rama desea fusionar con
Así que aquí estoy en el "cubo-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 traer cambios de mi remota:
$ 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 (e.g. '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 se han agregado "bucket-4" como una rama de seguimiento. Veamos:
$ git remote show origin
* remote origin
Fetch URL: [email protected]:abcd/main.git
Push URL: [email protected]: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 configured 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 configured 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, cubo-4 está marcado como "seguimiento", pero de alguna manera está configurado para empujar, pero no tire.
Al mirar mi archivo .git/config
, veo que tengo entradas "remotas" y "fusionar" para la mayoría de mis ramas, pero no para la cubeta-4. ¿Cómo se lo considera "seguido" sin esto?
[remote "origin"]
url = [email protected]: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 remote/merge
entradas para balde-4 en mi archivo de configuración. Pero, ¿cómo se considera "rastreado" sin esto? bucket-4 se creó localmente, luego se envió al servidor desde este repositorio, por lo que sospecho que de alguna manera no configuré el seguimiento correctamente para esta rama.
¿Hay alguna configuración que pueda agregar para hacer que todas las sucursales locales sigan sus controles remotos correctamente en el futuro?
Esta pregunta me apuntó en la dirección correcta, solo tuve que agregar una entrada en mi archivo .git/config para la rama que estaba tratando de extraer, y funcionó bien. –
Yup me too, y la manera de hacerlo es como Mark Longair se describe a continuación con la rama git --set-upstream bucket-4 origin/bucket-4 –