2010-01-06 16 views
8

En la sección Tirando de aguas arriba cambia en help.github's Forking a project afirma:¿Por qué incluir `master` en el comando` git fetch upstream master`?

ha pasado algún tiempo, la cesión temporal aguas arriba ha cambiado y desea actualizar su tenedor antes de enviar un nuevo parche. Hay dos maneras de hacer esto:

$ git fetch upstream master 

$ git merge upstream/master 

¿Por qué están incluyendo master en el comando fetch? Miré la información git help fetch, pero no entiendo lo que incluye master. Gracias.

Respuesta

6

Eso le permite:

  • actualización de la versión local del maestro aguas arriba rama única (en oposición como la actualización de todos ramas de la cesión temporal aguas arriba, que puede ser más largo que hacer)
  • sin desencadenar una fusión de inmediato (en comparación con el comando de tracción)

el git merge entonces intentará fusionar esa versión local de la corriente arriba maestro de su rama principal de repositorio.

Así que aquí, el maestro es, para el comando fetch, un refspec.

<refspec> 

El formato de un parámetro <refspec> es un signo opcional de +, seguido de la ref fuente <src>, seguido de dos puntos:, seguido de la ref destino <dst>.

Se busca la referencia remota que coincide con <src>, y si <dst> no es una cadena vacía, la referencia local que la empareja se reenvía con <src>.
Si se usa el plus plus +, la referencia local se actualiza incluso si no da como resultado una actualización de avance rápido.

Aquí, <dst> está vacío, por lo que se actualiza la rama local correspondiente (su maestro).


Sin principal, que daría:

git fetch upstream 

El anterior comando copia todas las ramas de la distancia refs/heads/ espacio de nombres y los almacena en la refs/remotes/upstream/ espacio de nombres locales, a menos que la opción branch.<name>.fetch se utiliza para especifique un refspec no predeterminado.

Cuestiones relacionadas