remove - git tags best practices
Consigue cambios de maestro a sucursal en Git (9)
En mi repositorio tengo una rama llamada aq
que estoy trabajando.
Entonces cometí nuevos trabajos y bugs en master
.
¿Cuál es la mejor manera de obtener esos compromisos en la rama aq
? ¿Crear otra nueva rama del master
y fusionarla con aq
?
Cualquiera que sea la rebase o la combinación es correcta, pero si tiene múltiples confirmaciones en su sucursal aq, la reorganización o la combinación contendrá otros cambios en las personas cuando envíe una solicitud de extracción, o qué pasa si aplasta las confirmaciones en una sola confirmación, así que creo Una forma (no la mejor, pero muy segura y clara)
# 1. Create a new remote branch A base on last master
# 2. Checkout A
# 3. Merge aq to A
Debería ser capaz de obtener git merge origin/master
cuando esté en su rama aq.
git checkout aq
git merge origin/master
Echa un vistazo a la rama aq
, y rebase del master
.
git checkout aq
git rebase master
No hay garantía de que las correcciones de errores principales no se encuentren entre otras confirmaciones, por lo que no puede simplemente fusionar. Hacer
git checkout aq
git cherry-pick commit1
git cherry-pick commit2
git cherry-pick commit3
...
Asumiendo que esas confirmaciones representan las correcciones de errores.
De ahora en adelante, sin embargo, mantenga las correcciones de errores en una rama separada. Podrás solo
git merge hotfixes
cuando quieras enrollarlos todos en la rama dev normal.
O bien cherry-pick
los compromisos relevantes en la rama aq
o fusione el master
rama en la rama aq
.
Para mí, ya tenía cambios en su lugar y quería lo último de la rama base. No rebase
hacer rebase
, y cherry-pick
habría tardado una eternidad, así que hice lo siguiente:
git fetch origin <base branch name>
git merge FETCH_HEAD
así que en este caso:
git fetch origin master
git merge FETCH_HEAD
Primero echa un vistazo a master
git checkout master
Haga todos los cambios, revisiones y confirmaciones y empuje a su maestro.
Vuelve a tu rama, ''aq'', y fusiona el maestro en ella:
git checkout aq
git merge master
Tu sucursal estará al día con el maestro. Un buen y básico ejemplo de fusión es 3.2 Git Branching - Basic Branching and Merging .
Usted tiene un par de opciones. git rebase master aq
en la rama que mantendrá los nombres de confirmación, pero NO REBASE si esta es una rama remota. Puede git merge master aq
si no le importa mantener los nombres de confirmación. Si desea mantener los nombres de confirmación y es una rama remota, git cherry-pick <commit hash>
los confirmaciones en su rama.
Fusionar con aq
git checkout master
git pull
git checkout aq
git merge --no-ff master
git push