2011-08-03 21 views
6

Estoy tratando de averiguar qué rama será descabellada si lo hago git fetch en la rama actual, y cómo puedo cambiar eso (por alguna variante de git remote o edición .git/config archivo).¿Cómo encontrar qué rama seguimiento de la rama actual

¿De qué rama remota git pull recupera el contenido? ¿Es lo mismo que git fetch obtiene los contenidos? ¿Hay algún comando git que me pueda mostrar toda esta información?

Respuesta

7

Para configurar la rama remota rastreado para un uso rama local

git branch --set-upstream <local_branch> <remote_branch> 

lo tanto, si usted quiere que su local de master para rastrear origin/master, tipo

git branch --set-upstream master origin/master 

Sin embargo, git fetch Obtiene todas las ramas de el control remoto configurado

Si tiene varios mandos a distancia (por ejemplo origin y other),

git fetch other 

buscará el mando a distancia mientras other

git fetch origin 

buscará origin.

Para saber en qué rama remota se está siguiendo, abierta .git/config y la búsqueda de una entrada como

[branch "mybranch"] 
    remote = <remote_name> 
    merge = <remote_branch> 

Esto le indica que su sucursal local mybranch tiene <remote_name> tal como está configurado a distancia y que hace un seguimiento de <remote_branch> en <remote_name>.

Qué ramas se obtienen de un mando a distancia y cómo se les llama en tu repositorio local se define en la siguiente sección de .git/config:

[remote "origin"] 
    fetch=+refs/heads/*:refs/remotes/origin/* 
    url=<url_of_origin> 

Esto le indica que las ramas almacenados bajo refs/heads de su origen consiguen descabellada y obtener almacenados en refs/remotes/origin/ en su repositorio local.

Si usted está en mybranch y tipo git fetch, las revisiones de <remote_name> (especificados en la sección [remote <remote_name>]) serán descabellada. Si escribe git pull, después de obtener las revisiones de <remote_name>, la rama <remote_branch> de <remote_name> se fusionará en mybranch.

Puede encontrar información adicional en las páginas man de git branch, git fetch y git pull.

+0

Estaba buscando la información sobre sucursales remotas, y su último párrafo (sugerencia para examinar .git/config) es muy útil. ¿Sabes qué [origen de "origen remoto"] fetch = + refs/heads/*: refs/remotos/origin/* mean (en mi .git/config)? ¿'Git fetch' trae todas las ramas de la forma origin/refs/heads/xyz a las ramas locales de rastreo remoto refs/remotes/origin/xyz?¿Sucede para todos los xyz o solo para la rama actual (en la que se emite 'git fetch')? –

+0

Esto es genial. Una pequeña edición: si está en 'mybranch' y escribe' git fetch', se recuperarán las revisiones de '' _specified en [remote ] section_. Creo que eso es correcto, ¿verdad? –

+0

No puedo decir '@ eckes' por alguna razón. ¡Se elimina automáticamente! :-( –

Cuestiones relacionadas