example - Git: ¿Cómo rebase y squash se compromete de rama a maestro?
git push tag (2)
Estoy tratando de reajustar y aplastar todos mis compromisos de la rama actual al maestro. Esto es lo que estoy tratando de hacer:
git checkout -b new-feature
Hacer un par de confirmaciones, después de eso estaba intentando:
git rebase -i master
En este caso, los compromisos permanecerán en la rama de new-feature
git checkout master
git rebase -i new-feature
Me da y la ventana de edición con el mensaje noop.
Sé sobre el comando:
git merge --squash new-feature
Pero actualmente estoy trabajando en el aprendizaje del comando rebase
.
Al rebasar, Git no moverá las confirmaciones a otra rama. Se moverá la rama incluyendo todos sus compromisos. Si desea obtener las confirmaciones en el maestro después de volver a basarse encima de ellas, use git merge <branch tip or commit of branch>
para adelantar la derivación maestra a esa confirmación.
Vayamos por los escalones.
1 - Creamos una nueva rama de características
git checkout -b new-feature
2 - Ahora puedes agregar / eliminar y actualizar lo que quieras en tu nueva sucursal
git add <new-file>
git commit -am "Added new file"
git rm <file-name>
git commit -am "Removed a file"
cat "add more stuff to file" >> <new-file>
git commit -am "Updated files"
3 - A continuación, selecciona y aplasta cualquier confirmación en un bonito y bonito mensaje de confirmación
git rebase -i master
La clave que debe recordar aquí es cambiar el texto que dice "elegir" a "aplastar" para todas las confirmaciones después de la primera confirmación. Esto aplastará todos los compromisos a tu rama maestra.
4 - Seleccione la rama maestra
git checkout master
5 - Mueva el HEAD y la rama maestra a donde está la nueva función:
git rebase new-feature
Puede probar todos los comandos en esta herramienta visual: http://pcottle.github.io/learnGitBranching/