name git gerrit

name - gerrit-git(pull vs checkout vs cherrypick) ¿Cuál es para qué?



gerrit name (3)

En gerrit ex: link Android, para descargar el parche, veo 4 opciones.

  1. descarga de repo
  2. revisa
  3. Halar
  4. cherry-pick

¿Cuál es la diferencia entre ellos?

Esto es lo que pienso de ellos. Por favor aclara

  1. descarga de repositorio -> Descarga el código fuente completo (de todos los repositorios de git en el proyecto) hasta que este compromiso
  2. checkout -> No estoy seguro de qué se trata.
  3. pull -> ¿No estás seguro de lo que hace?
  4. cherry-pick -> Intenta descargar solo este cambio y fusionarlo en el código fuente.

Sé que la extracción y el pago son diferentes a los de recogida selectiva. Pero, ¿cómo son diferentes?


Con git tienes tu propia versión del repositorio. Que sincronizas con los repositorios de otros. Con fetch , actualice sus referencias remotas, es decir. actualiza lo que otros obtuvieron Con el checkout se cambia a una revisión específica. Quieres hacer esto, si acabas de empezar a usar esto.

Ahora, si ya está siguiendo una rama remota, tal vez solo necesite actualizar su sucursal local. Eso es lo pull hace pull por ti. Aplica todos los cambios en la rama remota a su local. Lo necesita si lo está usando y solo quiere actualizarlo.

cherry-pick permite elegir un cambio desde cualquier parte del repositorio y lo aplicará en su sucursal local. Es útil si estás en una rama diferente por cualquier razón, pero aún necesitas ese cambio específico. Tenga en cuenta que si elige cuidadosamente sin presionar ese cambio, este cambio no es persistente. Está comprometido con su repositorio local, pero no con el control remoto (sin embargo, podría ser lo que necesita en los casos).

Vea más sobre los conceptos básicos de git, por ejemplo, here


Tienes razón sobre el primero. Aquí están el resto de ellos:

  1. Pagar : obtiene los últimos cambios. Ya deberías descargar este repositorio. No combina esos cambios nuevos, pero hace que su directorio de trabajo los refleje. Puede fusionarlos en su tiempo libre más tarde.

  2. Pull : recupera los cambios Y los combina en la rama local del mismo nombre .

  3. Cherry-pick : obtiene la confirmación y la juega sobre la rama local actual , creando así una confirmación completamente nueva que tiene los mismos cambios que la que obtuvo.

Son un poco diferentes de lo que realmente significan en git . checkout y cherry-pick no recuperan los cambios automáticamente. checkout solo lleva a HEAD a un commit que especifiques, haciendo que el directorio de trabajo sea exactamente como estaba en ese commit. Del mismo modo, cherry-pick se usa para reproducir compromisos a los que ya tienes acceso local.


pago: desea usarlo cuando depende de un CAMBIO particular en una sucursal. digamos que su colega ha verificado algunas API para que usted consuma, y ​​puede verificar ese CAMBIO en una nueva sucursal local y comenzar a trabajar en su cambio.

Cherrypick: desea aplicar un CAMBIO particular a su sucursal local o una rama de lanzamiento en particular, y luego cherrypick. Imagine que tiene una corrección de parche en su versión 1.1, y desea aplicar esa corrección / CAMBIO a su rama 2.0, simplemente puede seleccionarla. Creará un nuevo CAMBIO en su rama 2.0 que contiene la corrección.

aquí hay una representación gráfica: http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html