Cherry-Pick un commit en Git

Abdul Jabbar 30 enero 2023
  1. ¿Cuándo usar Git cherry-pick?
  2. Comando Git cherry-pick
  3. Restaurar commits eliminadas y deshacer cambios en Git
Cherry-Pick un commit 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 Jabbar avatar Abdul Jabbar avatar

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.

LinkedIn

Artículo relacionado - Git Commit