Cherry-Pick un commit en Git
-
¿Cuándo usar Git
cherry-pick
? -
Comando Git
cherry-pick
- Restaurar commits eliminadas y deshacer cambios en Git
cherry-pick
es un comando muy útil que es sorprendente y muy útil en varios escenarios mientras se usa Git. En Git, el comando cherry-pick
nos permite combinar commits ordenadas y separadas de una rama en la rama HEAD
actual.
Podemos explicarlo como elegir un commit de una rama en particular y transferirlo a otra rama. Este comando puede ser útil para deshacer cambios de esa rama. Por ejemplo, si algun commit se envía accidentalmente a la rama no deseada. Podemos cambiar a la rama deseada y elegir que accidentalmente se comprometan con la rama deseada donde debería estar.
¿Cuándo usar Git cherry-pick
?
Git cherry-pick
es una herramienta poderosa pero no siempre puede ser la mejor opción. Deberíamos aplicar cherry-pick
no común porque hace fácilmente compromisos duplicados cuando combinamos un commit en nuestra rama HEAD
usando este comando.
Git es responsable de realizar un nuevo commit con los mismos requisitos que el último commit. Git cherry-pick
debe usarse en un escenario en el que hayamos confirmado por error los nuevos cambios en la rama equivocada y lo hayamos enviado al repositorio remoto.
Después de empujarla al repositorio remoto, nos damos cuenta de que el commit empujada no era necesaria para empujar en una rama particular, por lo que tenemos que utilizar el comando Git cherry-pick
para recoger esa confirmación por su ID único y transferirla a la rama correcta.
Siempre que tengamos la oportunidad de aplicar el Merge o Rebase tradicional para combinar, debemos considerar el cherry-picking
porque el cherry-pick
debe reservarse para casos raros en los que el merge o rebase no es aplicable.
Comando Git cherry-pick
Solo necesitamos especificar el commit que queremos combinar en nuestra rama HEAD
actual a partir de el commit que hicimos en la rama incorrecta, et12x8iu
es la ID de commit que debemos especificar para combinarla en la rama actual.
A continuación se muestra el comando que transferirá el commit incorrecta a la nueva confirmación más reciente.
$ git cherry-pick et12x8iu
De esta forma, confirmaremos directamente las revisiones especificadas en nuestra rama actualmente desprotegida.
Supongamos que además necesitamos alguna modificación en nuestro trabajo. En ese caso, también podemos usar el comando Git para incluir solo los cambios de commit en nuestra copia de trabajo principal sin confirmarlos directamente. De esta forma, entrará directamente en una copia de trabajo modificada y podremos modificar los archivos según nuestros requisitos.
El siguiente es el comando para obtener el commit incorrecta en nuestro directorio de trabajo:
$ git cherry-pick et12x8iu --no-commit
Restaurar commits eliminadas y deshacer cambios en Git
A veces, una feature branch
tiene algunas complicaciones y no se combina en una current branch
, y a veces una solicitud de extracción puede detenerse sin fusionarse debido a diferentes requisitos de trabajo.
La característica especial de Git es que nunca pierde la pista de esos commits, y a través de algunos comandos como git log
y git reflog
, pueden ser rastreados de nuevo y cherry-picked
de vuelta a su lugar donde deberían estar en primer lugar.
Podemos decir que la opción cherry-pick
no debe usarse en lugar de git merge
o git-rebase
. El comando git log
se puede aplicar para ayudar a ordenar los commits para seleccionar en la rama en particular.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedInArtículo relacionado - Git Commit
- Agregar todos los archivos para confirmar excepto un archivo
- Agregar un archivo a la última confirmación en Git
- Cierra el editor de Git Commit en Windows
- Combinar selectivamente los cambios de diferentes ramas en Git
- Comprender la función de aprobación de Git Commit
- Confirmaciones de la lista de Git