¿Qué significa 'etapa' en git?

270

Me parece difícil entender git porque no pude encontrar el significado de las palabras utilizadas para las acciones. He revisado el diccionario para el significado de "etapa" y ninguno de los significados estaba relacionado con los conceptos de control de fuente.

¿Qué significa 'etapa' en el contexto de git?

    
pregunta 000 15.11.2011 - 04:27
fuente

8 respuestas

265

A etapa un archivo es simplemente prepararlo finamente para un compromiso. Git, con su índice, le permite confirmar solo ciertas partes de los cambios que ha realizado desde la última confirmación. Digamos que está trabajando en dos funciones: una está terminada y la otra aún necesita trabajo. Le gustaría comprometerse e irse a casa (¡a las 5 en punto, por fin!) Pero no le gustaría cometer las partes de la segunda función, que aún no está terminada. Usted pone en escena las partes que sabe que pertenecen a la primera característica, y confirma. Ahora su compromiso es su proyecto con la primera función hecha, mientras que la segunda aún está en proceso de trabajo en su directorio de trabajo.

    
respondido por el Rook 15.11.2011 - 04:36
fuente
120

Ya que todos hasta ahora lo han respondido de manera "formal", permítanme hacer esto con alternativas para mejorar el aprendizaje con el poder de las metáforas.

Así que el área de preparación es como:

  • un caché de archivos que desea confirmar
  • no una serie de tubos sino en realidad un camión volquete, listo para mover el trabajo con el que se carga, al depósito
  • un lugar mágico donde los archivos seleccionados se convertirán en piedra con su magia y se pueden transportar mágicamente al repositorio a su antojo
  • el camino de ladrillos amarillos para que los archivos vayan felizmente al repositorio (o se caigan si quieres revertir)
  • el lugar ficticio en el puerto marítimo donde se reciben los archivos un par de zapatos de cemento y luego se arrojan al mar de depósito
  • en el escritorio de recepciones de la biblioteca, coloque los archivos allí para que el bibliotecario se prepare para archivar en la biblioteca
  • una caja donde colocas las cosas antes de meterlas debajo de tu cama, donde tu cama es un depósito de cajas que has metido previamente
  • el compartimento de carga de archivos antes de que entre en el almacén de repositorios con el cargador de energía
  • el filtro de una cafetera eléctrica de goteo, si los archivos son como el polvo de café, entonces los archivos comprometidos son el café preparado
  • La oficina de Scrooge McDuck al lado de la bóveda, los archivos son como las monedas antes de que entren en la bóveda de su enorme cofre de dinero
  • la tienda de mascotas, una vez que traiga una mascota a casa, estará comprometida

¡Es mágico !

    
respondido por el Spoike 15.11.2011 - 08:56
fuente
30

La puesta en escena es un paso antes del proceso de confirmación en git. Es decir, una confirmación en git se realiza en dos pasos: puesta en escena y confirmación real.

Mientras haya un conjunto de cambios en el área de preparación, git le permite editarlo como lo desee (reemplazar los archivos almacenados por etapas con otras versiones de los archivos almacenados, eliminar los cambios de la preparación, etc.).

Tiempo de metáfora roto:

Considera un escenario en el que llamas a los agentes de mudanzas para que te lleven tus cosas de tu antiguo apartamento a tu nuevo apartamento. Antes de hacer eso, repasarás tus cosas, decidirás qué llevas contigo y qué tiras, lo empacarás en bolsas y lo dejarás en el pasillo principal. Los motores simplemente vienen, recogen las bolsas (ya empaquetadas) del pasillo y las transportan. En este ejemplo, todo hasta que los agentes de mudanzas obtienen sus cosas, se está preparando: usted decide qué va a dónde, cómo empaquetarlo y así sucesivamente (por ejemplo, puede decidir que la mitad de sus cosas se tirarán antes de que lleguen los motores, eso es parte de puesta en escena).

Desde un punto de vista técnico, la puesta en escena también admite confirmaciones transaccionales, al dividir todas las operaciones en lo que puede fallar (estadificación) y lo que no puede fallar (cometer):

La confirmación en git se implementa de manera transaccional, después de que la puesta en escena sea exitosa. Varios pasos en la preparación pueden fallar (por ejemplo, debe comprometerse, pero su disco duro está lleno al 99.9999%, y git no tiene espacio para realizar una confirmación). Esto fallará en la preparación (su repositorio no se dañará por una confirmación parcial) y el proceso de preparación no afectará su historial de confirmación (no dañará su repositorio en caso de error).

    
respondido por el utnapistim 07.07.2014 - 14:45
fuente
25

Preparar un archivo es prepararlo para una confirmación. Debido a que git expone esta acción al control de los usuarios, le permite crear confirmaciones parciales o modificar un archivo, organizarlo, modificarlo nuevamente y solo confirmar o revertir a la modificación original.

La puesta en escena le permite un control más preciso sobre exactamente cómo desea acercarse al control de versiones.

    
respondido por el Josh K 15.11.2011 - 04:31
fuente
17

Para agregar a las otras excelentes respuestas, aquí es de donde viene el nombre para "stage":

  

Revisé el diccionario para el significado de etapa y ninguna de las   los significados estaban relacionados con los conceptos de control de fuente.

En inglés, "al escenario" puede significar

  

organizar y participar en (un evento público): los partidarios de UDF realizaron una   manifestación en sofia

(de enlace )

El nombre "puesta en escena" para la característica git deriva de este significado: cuando está en escena, está preparando y organizando un compromiso. Por supuesto, un compromiso no es exactamente lo mismo que un rendimiento, pero es un evento importante en un VCS :-).

    
respondido por el sleske 15.11.2011 - 10:15
fuente
4

Con la mayoría de los otros sistemas de control de versión, hay 2 lugares para almacenar datos: su copia de trabajo (las carpetas / archivos que está usando actualmente) y el almacén de datos (donde el control de versión decide cómo empaquetar y almacenar sus cambios). En Git hay una tercera opción: el área de preparación (o índice). Es básicamente un muelle de carga donde puedes determinar qué cambios se enviarán de inmediato.

fuente: enlace

    
respondido por el Mostafiz Rahman 11.07.2014 - 02:55
fuente
-1

La "etapa" es un paso intermedio requerido técnicamente en el proceso de registrar un archivo, es decir, recopilar los cambios que se agregarán al repositorio. Los autores de Git eligieron hacer este paso visible y persistente donde otros VCS lo convierten en una parte transitoria del proceso de confirmación. Así que es solo una opción que git te da porque puede, ¿por qué no?

De la forma en que lo veo, lo principal que el "escenario" de git le da a otro VCS es que puede usarlo para controlar un archivo. De hecho, es un compromiso local sin nombre y sin comentarios que le brinda un paso intermedio entre la finalización de todo su trabajo y su envío al repositorio de forma permanente y no tener nada guardado en su repositorio local.

Por ejemplo, supongamos que tiene una función parcialmente terminada. Está en un estado estable, pasa todas las pruebas y podría entrar en producción, pero tiene más trabajo que hacer en él. Podría organizar todos los cambios y luego continuar trabajando en la función.

Más adelante, tendrá la opción de confirmar solo lo que usted preparó (y enviar ese compromiso al repositorio remoto) o agregar sus nuevos cambios a su área de preparación y luego confirmarlos todos a la vez, o simplemente deshacerlos. haga cambios nuevos y revierta su directorio de trabajo al estado en que se encontraba cuando realizó los cambios.

Es completamente posible prácticamente omitir el área de preparación por completo y simplemente usar la opción -a para git commit si no encuentra el área de preparación como un concepto útil. Mucha gente omite la puesta en escena y las herramientas de GUI generalmente también lo permiten.

    
respondido por el Old Pro 29.04.2014 - 22:34
fuente
-2

Mi entendimiento es, supongo que estoy desarrollando la función de inicio de sesión y se requieren 5 pasos consecutivos para completar. Así que aquí la puesta en escena te ayudará a trabajar en pasos como
hecho con el paso 1 de la etapa.
hecho con el paso 2, ahora el paso 1 y el paso 2 son los pasos correctos para ello.
lío con el paso 3 no hay problema checkout último paso por etapas que es el paso 2
De la misma manera, una vez que haya terminado con los 5 pasos, lo que significa que la función está completa, ahora realice la confirmación.

    
respondido por el palash140 25.08.2016 - 13:57
fuente

Lea otras preguntas en las etiquetas