pero me da una error "! [rechazado]" y algo sobre "avance no rápido"
Eso es porque Git no puede fusionar los cambios de las ramas en su maestro actual. Supongamos que ha comprobado la rama master
y desea fusionar en la rama remota other-branch
. Al hacer esto:
$ git pull origin other-branch
Git es básicamente haciendo esto:
$ git fetch origin other-branch && git merge other-branch
Es decir, un pull
es sólo un fetch
seguido de un merge
. Sin embargo, cuando pull
-ing, Git única fusionar other-branch
si se puede realizar un avance rápido fusión .Una combinación de avance rápido es una combinación en la que el encabezado de la rama en la que intenta fusionarse es un descendiente directo del encabezado de la rama que desea fusionar. Por ejemplo, si usted tiene este árbol historia, entonces la fusión other-branch
se traduciría en una combinación de avance rápido:
O-O-O-O-O-O
^ ^
master other-branch
Sin embargo, esto no ser una combinación de avance rápido:
v master
O-O-O
\
\-O-O-O-O
^other-branch
para resolver el problema, primero fetch la rama remota:
$ git fetch origin other-branch
Entonces me rge en su rama actual (voy a suponer que eso es master
), y corregir los conflictos de fusión:
$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit # And commit the merge!
¿cuál es el comando real que se está ejecutando repo? –
Es fetch que puede fallar con el mensaje 'no avance rápido'. ¿Modificó la rama de rastreo remoto (origen/xyz) o la rama rebobinó/reescribió en el repositorio remoto? Puede que necesite usar "' git fetch origin --force' ", pero lea la documentación antes de hacerlo. –