example changes all git

changes - ¿Qué es un git "Snapshot"?



stage changes git (7)

El documento oficial de Git dice:

$ git diff test

Esto le mostrará qué es diferente entre su directorio de trabajo actual y la instantánea en la rama ''prueba''

Como novato, esto es muy confuso. Nunca he oído hablar del término instantánea. ¿Significan la "CABEZA" de la rama "prueba"?


A continuación se detallan algunos de los contextos en los que se utiliza el término instantánea :

  1. Se crea un nuevo compromiso tomando una instantánea del índice.
  2. Un compromiso es una instantánea del repositorio en un momento dado.

El término instantánea también se usa en el sitio de referencia de git

Es el término de reemplazo para "Revisión". En otros sistemas de control de versiones, los cambios en los archivos individuales se rastrean y se mencionan como revisiones, pero con git usted está rastreando todo el espacio de trabajo, por lo que usan el término instantánea para denotar la diferencia.

Desde http://gitref.org/index.html

En lugar de escribir una herramienta que versione cada archivo individualmente, como Subversion, probablemente escribiríamos uno que facilite almacenar instantáneas de nuestro proyecto sin tener que copiar todo el directorio cada vez.

Esto es esencialmente lo que es Git. Le dices a Git que quieres guardar una instantánea de tu proyecto con el comando git commit y básicamente registra un manifiesto de cómo son todos los archivos en tu proyecto en ese momento. Entonces, la mayoría de los comandos funcionan con esos manifiestos para ver cómo difieren o extraer contenido de ellos, etc.

Si considera que Git es una herramienta para almacenar, comparar y fusionar instantáneas de su proyecto, puede ser más fácil entender qué está sucediendo y cómo hacer las cosas correctamente.


En primer lugar, esa no es la documentación oficial de GIT. Es un libro escrito por la comunidad. Si bien es probable que tenga bastante autoridad, no es evangelio.

AFAIK, "instantánea" no tiene ningún significado formal en git. Ciertamente, la página de manual de git diff no lo menciona. En el contexto dado, es probablemente una referencia informal de cómo se usa la rama de "prueba" en los ejemplos dentro del libro, es decir, como una instantánea del trabajo en curso, para propósitos de prueba.


Según las otras definiciones publicadas:

Una instantánea es una representación del estado actual de los archivos rastreados en forma de manifiesto , que se puede comparar con otros manifiestos para ver dónde están las diferencias.

Git solo rastrea las diferencias entre los manifiestos desde el primer momento en que fue rastreado. Si un archivo no se ha modificado desde la primera instantánea, todas las instantáneas posteriores se referirán a la primera instantánea. Si el archivo ha sido cambiado, todas las instantáneas posteriores se referirán a la instantánea que tiene los cambios más recientes. Lo que almacena git es efectivamente una historia encadenada de instantáneas desde la última hasta la primera. Una rama es básicamente una división en la línea de tiempo, lo que permite una cadena histórica alternativa de instantáneas de una instantánea específica de la cadena principal.

Por lo general, las sucursales están destinadas a funciones que pueden fusionarse en algún momento con la rama principal. Si no hay intención de fusionarse, sino más bien una divergencia del proyecto original en forma de una copia nueva y completamente separada del proyecto con su propia historia, a menudo se lo llama "hard fork", refiriéndose a "un tenedor en el camino".


Tengo entendido que una instantánea en general es solo la "entidad" que git usa para almacenar sus datos. A diferencia de almacenar sus datos como una serie de "deltas" / conjuntos de cambios como SVN, por ejemplo, cada compromiso que usted hace a git crea un "objeto de confirmación" que hace referencia a una instantánea de cómo era el código en ese momento. .

Entonces, como dice @Femaref, es el estado del código en un momento específico y no necesariamente significa que es el jefe de la rama de prueba, pero podría estar en el ejemplo que viste.


Una instantánea es el estado de algo (por ejemplo, una carpeta) en un punto específico en el tiempo. En este caso, instantánea significa el contenido actual de la rama de prueba, esta no tiene que ser la revisión principal.


La instantánea es para un repositorio como una captura de pantalla para un video.

El repositorio de Git consiste en una serie de instantáneas , que son un conjunto de archivos y carpetas representados por un objeto de árbol de Git, almacenados en la carpeta .git del repositorio. (Cuando se commit , almacena el directorio de trabajo actual de su repositorio como la instantánea de un nuevo repositorio).