Me resulta difícil entender a Git, ya que no pude encontrar el significado de las palabras utilizadas para las acciones. He revisado el diccionario para ver 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?
git
version-control
000
fuente
fuente
git add file.ext
para un archivo específico, ogit add .
afectar a todos los archivos modificados y no rastreados. Se dice que los archivos que se han agregado de esta manera están "organizados" y se incluirán en el próximo "commit". El commit es una instantánea de su trabajo creado, por ejemplo, congit commit -m "I wrote something"
.Respuestas:
Para organizar un archivo es simplemente para prepararlo finamente para una confirmación. Git, con su índice, le permite confirmar solo ciertas partes de los cambios que ha realizado desde la última confirmación. Supongamos que está trabajando en dos funciones: una está terminada y otra aún necesita trabajo. Te gustaría hacer una confirmación e ir a casa (¡las 5 en punto, finalmente!) Pero no te gustaría confirmar las partes de la segunda función, que aún no se ha hecho. Escenifica las partes que sabes que pertenecen a la primera característica y confirma. Ahora su commit es su proyecto con la primera característica realizada, mientras que la segunda aún está en progreso en su directorio de trabajo.
fuente
Como hasta ahora todos lo han respondido de manera "formal", permítanme hacer esto con alternativas para mejorar el aprendizaje con el poder de las metáforas.
Entonces el área de preparación es como:
Es mágico !
fuente
La puesta en escena es un paso antes del proceso de confirmación en git. Es decir, un commit en git se realiza en dos pasos: puesta en escena y commit real.
Mientras un conjunto de cambios esté en el área de preparación, git le permite editarlo a su gusto (reemplace los archivos almacenados con otras versiones de los archivos almacenados, elimine los cambios de la preparación, etc.).
Tiempo de metáfora rota:
Considere un escenario en el que llame a los motores para obtener sus cosas de su antiguo departamento a su nuevo departamento. Antes de hacer eso, revisará sus cosas, decidirá qué lleva consigo y qué tira, lo empacará en bolsas y lo dejará en el pasillo principal. Los motores simplemente vienen, sacan las bolsas (ya empacadas) del pasillo y las transportan. En este ejemplo, todo hasta que los motores obtengan sus cosas, se está organizando: usted decide qué va a dónde, cómo empacarlo, etc. 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 (puesta en escena) y lo que no puede fallar (confirmación):
El commit en git se implementa transaccionalmente, después de que la puesta en escena es exitosa. Varios pasos en la puesta en escena pueden fallar (por ejemplo, necesita confirmar, pero su HDD está 99.9999% lleno, y git no tiene espacio para realizar una confirmación). Esto fallará en la preparación (su depósito no será dañado por una confirmación parcial) y el proceso de preparación no afecta su historial de confirmación (no corrompe su depósito en caso de error).
fuente
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 volver a la modificación original.
La estadificación le permite un control más preciso sobre exactamente cómo desea abordar el control de versiones.
fuente
Para agregar a las otras excelentes respuestas, aquí es de donde viene el nombre de "etapa":
En inglés, "representar" puede significar
(de http://oxforddictionaries.com/definition/stage )
El nombre "puesta en escena" para la característica git deriva de este significado: Al poner en escena, está preparando y organizando una confirmación. Por supuesto, un commit no es lo mismo que una actuación, pero es un evento importante en un VCS :-).
fuente
Con la mayoría de los otros sistemas de control de versiones, hay 2 lugares para almacenar datos: su copia de trabajo (las carpetas / archivos que está utilizando actualmente) y el almacén de datos (donde el control de versiones decide cómo empacar y almacenar sus cambios). En Git hay una tercera opción: el área de preparación (o índice). Básicamente es un muelle de carga donde puedes determinar qué cambios se envían lejos.
fuente: http://gitready.com/beginner/2009/01/18/the-staging-area.html
fuente
La "etapa" es un paso intermedio técnicamente necesario en el proceso de registrar un archivo, es decir, recopilar los cambios que se agregarán al repositorio. Los autores de Git decidieron hacer este paso visible y persistente donde otros VCS lo hacen una parte transitoria del proceso de confirmación. Entonces, es solo una opción que git te da porque puede, ¿por qué no?
A mi modo de ver, lo principal que el "escenario" de git te da que otros VCS no tienen es que puedes usarlo para revisar un archivo. Es efectivamente un compromiso local sin nombre y sin comentarios que le da un paso intermedio entre terminar con todo su trabajo y comprometerlo en el repositorio permanentemente 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 por hacer. Puede organizar todos sus cambios y luego continuar trabajando en la función.
Más tarde, tendrá la opción de simplemente confirmar lo que organizó (y enviar esa confirmación al repositorio remoto) o agregar sus nuevos cambios a su área de preparación y luego confirmar todo de una vez, o deshacer solo sus nuevos cambios y revierta su directorio de trabajo al estado en que estaba cuando organizó sus cambios.
Es completamente posible omitir prácticamente el área de preparación por completo y simplemente usar la
-a
opcióngit commit
si no encuentra el área de preparación un concepto útil. Mucha gente se salta la puesta en escena y las herramientas GUI generalmente también permiten esto.fuente
Según tengo entendido, supongo que estoy desarrollando una función de inicio de sesión y necesito 5 pasos consecutivos para completar. Así que aquí la puesta en escena lo ayudará a trabajar en pasos como los que se
realizan con el paso 1.
hecho con el paso 2, ahora el paso 1 y el paso 2 son dos etapas correctas.
lío con el paso 3 sin problemas, verifique el ú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.
fuente