Actualmente estoy trabajando en una featurex
sucursal. Nuestra rama maestra se llama rama our-team
. Desde que comencé a trabajar featurex
, se han realizado más cambios en la rama our-team
. Antes de presionar featurex
para la fusión, me gustaría obtener todos los cambios de la our-team
rama a nivel local para featurex
poder asegurarme de que todo funcione como se espera.
He hecho esto localmente para obtener los últimos cambios de our-team
.
git checkout our-team
git pull
¿Cómo puedo hacer eso?
Respuestas:
Puede usar rebase , por ejemplo,
git rebase our-team
cuando está en su ramafeaturex
Moverá el punto de inicio de la rama al final de su
our-team
rama, fusionando todos los cambios en sufeaturex
rama.fuente
git checkout our-team git pull git checkout featurex git merge our-team
our-team
local, deberá ejecutar en sugit fetch && git rebase origin/our-team
lugar. Sus comandos asumen que el repositorio se ha actualizado antes.ir a la rama maestra
our-team
extraer todos los nuevos cambios de la
our-team
ramave a tu sucursal
featurex
featurex
fusionar los cambios de
our-team
rama enfeaturex
ramaour-team
{commit-hash}
si desea fusionar confirmaciones específicasempuja tus cambios con los cambios de
our-team
ramaNota : probablemente tendrá que solucionar los conflictos después de fusionar una
our-team
rama en otrafeaturex
antes de presionarfuente
o
pero primero debe asegurarse de que ya está en la rama a la que desea actualizar (featurex).
fuente
Ya casi has llegado :)
Todo lo que queda es
Esto fusionará nuestro-equipo en featurex.
Lo anterior asume que ya ha comprometido / escondido sus cambios en featurex, si ese no es el caso, deberá hacer esto primero.
fuente
Para otras personas que se encuentren con esta publicación en Google. Hay 2 opciones, fusionar o reajustar su rama. Ambos funcionan de manera diferente, pero tienen resultados similares.
La respuesta aceptada es una nueva base . Esto tomará todas las confirmaciones realizadas
our-team
y luego aplicará las confirmaciones realizadasfeaturex
, lo que le pedirá que las combine según sea necesario.Una pequeña advertencia del rebase es que pierde / reescribe el historial de su rama, esencialmente diciéndole a git que su rama no comenzó en la confirmación 123abc sino en la confirmación 456cde. Esto va a causar problemas para otras personas que trabajan en la rama, y algunas herramientas remotas se quejan de ello. Sin embargo, si estás seguro de lo que estás haciendo, para eso es la
--force
bandera.Lo que sugieren otros carteles es una fusión . Esto tomará la
featurex
rama, con cualquier estado que tenga e intentará fusionarla con el estado actual deour-team
, lo que le pedirá que haga una, grande, fusionar y corregir todos los errores de fusión antes de presionarour-team
. La diferencia es que está aplicando susfeaturex
confirmaciones antes de lasour-team
nuevas confirmaciones y luego arreglando las diferencias. Tampoco reescribe el historial, sino que le agregas un compromiso en lugar de reescribir los anteriores.Ambas opciones son válidas y pueden funcionar en conjunto. Lo que generalmente se hace (con eso quiero decir, si está utilizando herramientas y metodología generalizadas como git-flow ) para una rama de función es fusionarla en la rama principal, a menudo pasando por una solicitud de fusión, y resolver todos los conflictos que surgen en una (o varias) combinaciones de confirmaciones.
Rebasing es una opción interesante, que puede ayudarlo a arreglar su rama antes de pasar por una fusión, y aliviar el dolor de tener que hacer una gran confirmación de fusión.
fuente