freeCodeCamp/guide/spanish/miscellaneous/how-to-use-git-rebase/index.md

3.5 KiB

title localeTitle
How to Use Git Rebase Cómo usar Git Rebase

¿Fue referido a esta página para que su PR sea aceptado? ¡Desplázate a la derecha hasta Git Rebase en FCC!

git rebase es una herramienta extremadamente útil que trata sobre la reescritura del historial de git, aunque se usa más comúnmente para aplastar múltiples confirmaciones en una. Aunque es útil en este escenario, esta no es la única función que puede realizar el comando git rebase . De hecho, se demuestra que es mucho más útil cuando se usa para la función prevista que su nombre sugiere: básicamente para volver a escribir una rama. Déjame explicarte lo que quiero decir con eso.

Digamos que tienes un repositorio como este:

                                                  --- Commit 5 ----------- auth branch 
                                                / 
                                               --- Commit 4 -------------- dev branch 
                                             / 
 --- Commit 1 ---- Commit 2 ---- Commit 3 -------------------------------- master branch 

Si desea combinar la rama auth con la rama dev , git le lanzará un error porque su rama auth está desactualizada: no tiene en cuenta el Commit 4. Tendrá que actualizar su sucursal. hasta la fecha.

Git le proporciona dos métodos para hacer esto: el comando de merge y el comando de rebase . Para una exploración del comando de merge , visite el artículo relevante de la wiki: Git Merge

Vamos a ejecutar rebase ahora:

$ git checkout auth 
 $ git rebase dev 

El repositorio ahora se verá así:

                                                                 --- Commit 5 --- auth branch 
                                                               / 
                                               --- Commit 4 --------------------- dev branch 
                                             / 
 --- Commit 1 ---- Commit 2 ---- Commit 3 --------------------------------------- master branch 

¿Ves lo que pasó? Básicamente, Git guardó las confirmaciones en la rama de auth , las "eliminó" y luego las creó nuevamente con las mismas confirmaciones después de las confirmaciones en la rama dev . ¡Esto significa que Commit 4 solo existe en la rama dev y no en la rama auth ! Y eso es realmente todo lo que hay que hacer! Esto puede parecer un poco confuso al principio, pero trate de entender el diagrama. Esta es una herramienta extremadamente útil.

Git-Rebase en FCC

Prevención de conflictos de fusión

Si contribuye al código base de la FCC, o planea hacerlo, siempre ejecute este comando antes de realizar cambios en sus archivos locales y presionarlos:

git pull --rebase upstream staging

Si no tiene una configuración en upstream ascendente, ejecute este comando antes de ejecutar el comando anterior (git generará un error porque no sabe qué es en sentido ascendente): git remote add upstream https://github.com/freecodecamp/freecodecamp.git

Esto extraerá los últimos cambios de la rama de preparación de la FCC y los volverá a ajustar con la rama de preparación de su fork para que no tenga ningún conflicto al abrir el PR :slight_smile:

Aplastamiento

Si tiene varias confirmaciones que desea aplastar en una, siga las instrucciones para Aplastar .