Diferencias entre git pull origin master y git pull origin / master


283

¿Cuál es la diferencia entre git pull origin mastery git pull origin/master?


1
calmh prácticamente lo tiene cubierto, pero la falta de respuesta es que nunca deberías hacerlo git pull origin/master. Si desea fusionar la rama remota [almacenada localmente] origin/master, simplemente use git merge origin/master.
Cascabel

3
@Jefromi: ¿Puedes explicar por qué siempre es mejor hacer git merge en comparación con git pull?
Rachel

16
git pullsignifica git fetchseguido por git merge. Obtiene el contenido del control remoto, luego lo combina en su rama actual. Pero origin/masteres una sucursal local (seguimiento de una sucursal remota). Si desea fusionarlo, no necesita buscar nada. Es engañoso decir git pull origin/mastercuando en realidad no estás buscando desde un control remoto.
Cascabel

Gracias Jefromi por la información útil. Realmente ayuda a entender bastante fácilmente el concepto no tan fácil.
Rachel

Para aquellos que leen esto y todavía están confundidos, origin/masteres una rama almacenada localmente que almacena en caché la rama maestra en el origen remoto.
iheanyi

Respuestas:


354

git pull origin masterextraerá los cambios del origincontrol remoto, se masterbifurcará y los fusionará con la rama local desprotegida.

git pull origin/masterextraerá los cambios de la rama almacenada localmente origin/mastery la fusionará con la rama local desprotegida. La origin/masterrama es esencialmente una "copia en caché" de lo que se extrajo por última vez origin, por lo que se llama una rama remota en lenguaje git. Esto puede ser algo confuso.

Puede ver qué ramas están disponibles git branchy git branch -rver las "ramas remotas".


1
en caso de git pull origin masterque siempre se fusione con la rama maestra, digamos que estoy en otra rama en mi repositorio y luego estoy haciendo el comando anterior, ¿actualizará mi rama actual con los cambios remotos de origen o mi rama maestra con los cambios?
Rachel

44
@calmh: git merge(y por lo tanto git pull) siempre se fusiona en la rama actual. Para fusionarse con algo que no sea su rama actual, simplemente compruébelo primero.
Cascabel

2
um .. No veo cómo 'origen / maestro' es diferente de 'origen maestro'; Ambos son la rama maestra en origen. ¿Puedes dar un ejemplo de cuándo serían diferentes?
hasen

69
git pull origin/masterpuede haber sido un comando válido cuando se escribió esto, pero hoy en día (git 1.7.10.3) falla fatal: 'origin/master' does not appear to be a git repository(como debería, pull siempre es para extraer desde remotos).
user1338062

3
¿Por qué es tan confuso git? Entonces tenemos 4 repositorios totalmente, ¿correcto? Hay un (1) repositorio remoto, (2) un repositorio local, (3) un repositorio de ensayo, (4) un origen / maestro local-remoto también conocido como? ¿Por qué git tendría el repositorio n. ° 4?
Mugen

3

git pull origin masterbuscará todos los cambios desde la rama maestra del control remoto y los combinará en su local. Generalmente no usamos git pull origin / master. Podemos hacer lo mismo al git merge origin/master. Combinará todos los cambios de la "copia en caché" de la rama maestra del origen en su rama local. En mi caso git pull origin/masteres arrojar el error.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.