2009-10-06 3 views
41

Mejor que se explica un ejemplo: Estoy en la rama 0.58 del repositorio y esta a su forma Saco:git: diferencia entre "BRANCHNAME" y "árbitros/cabeza/BRANCHNAME"

git pull origin 0.58 

Cuando acabo llamar "git pull", me sale:

ip238:openlierox az$ git pull 
You asked me to pull without telling me which branch you 
want to merge with, and 'branch.0.58.merge' in 
your configuration file does not tell me either. Please 
name which branch you want to merge on the command line and 
try again (e.g. 'git pull <repository> <refspec>'). 
See git-pull(1) for details on the refspec. 

If you often merge with the same branch, you may want to 
configure the following variables in your configuration 
file: 

    branch.0.58.remote = <nickname> 
    branch.0.58.merge = <remote-ref> 
    remote.<nickname>.url = <url> 
    remote.<nickname>.fetch = <refspec> 

See git-config(1) for details. 

Parece que probablemente olvidó alguna opción (--track?) cuando me registré que se ramifican. De todos modos, he establecido esto ahora:

git config branch.0.58.merge 0.58 
git config branch.0.58.remote origin 

Y esto parece funcionar. Entonces, sólo por interés, di un vistazo a alguna otra rama sobre esta configuración:

ip238:openlierox az$ git config branch.0.57.merge 
refs/heads/0.57 
ip238:openlierox az$ git config branch.0.57.remote 
origin 

Me preguntaba ahora, es que hay una diferencia entre "0.58" o debería especificar "refs/heads/0,58" ?

¿Cuál es la diferencia exactamente?

Respuesta

65

Una referencia es cualquier cosa que apunte a una confirmación, por ejemplo, ramas (encabezados), etiquetas y ramas remotas. Debería ver las cabezas, controles remotos y etiquetas en su directorio .git/refs, suponiendo que tiene los tres tipos de refs en su repositorio.

refs/heads/0.58 especifica una rama llamada 0.58. Si no especifica en qué espacio de nombres está la referencia, git se verá en los valores predeterminados. Esto hace que el uso de solo 0,58 sea ambigua - podría tener una rama y una etiqueta llamada 0.58.

+2

Muchas gracias, esto lo explica muy bien. Simplemente funcionó con el simple "0.58" ya que no existe dicha etiqueta con nombre. – Albert

+1

Correcto, esencialmente siempre estará completamente bien, pero es bueno estar seguro. – Cascabel

19

Solo para alguien que tenga curiosidad - git show-ref, que está disponible desde Git v1.8.2.2, le mostrará todas las referencias que tenga en su repositorio local.

Cuestiones relacionadas