¿Cuál es la diferencia entre git pull origin master
y git pull origin/master
?
fuente
¿Cuál es la diferencia entre git pull origin master
y git pull origin/master
?
git pull origin master
extraerá los cambios del origin
control remoto, se master
bifurcará y los fusionará con la rama local desprotegida.
git pull origin/master
extraerá los cambios de la rama almacenada localmente origin/master
y la fusionará con la rama local desprotegida. La origin/master
rama 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 branch
y git branch -r
ver las "ramas remotas".
git pull origin master
que 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?
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.
git pull origin/master
puede 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).
git pull origin master
buscará 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/master
es arrojar el error.
git pull
= git fetch
+git merge origin/branch
git pull
y git pull origin branch
solo difieren en que este último solo "actualizará" el origen / rama y no todo el origen / * como lo git pull
hace.
git pull origin/branch
simplemente no funcionará porque está tratando de hacer algo git fetch origin/branch
que no es válido.
Pregunta relacionada: git fetch + git merge origin / master vs git pull origin / master
git pull origin/master
. Si desea fusionar la rama remota [almacenada localmente]origin/master
, simplemente usegit merge origin/master
.git pull
significagit fetch
seguido porgit merge
. Obtiene el contenido del control remoto, luego lo combina en su rama actual. Peroorigin/master
es una sucursal local (seguimiento de una sucursal remota). Si desea fusionarlo, no necesita buscar nada. Es engañoso decirgit pull origin/master
cuando en realidad no estás buscando desde un control remoto.origin/master
es una rama almacenada localmente que almacena en caché la rama maestra en el origen remoto.