¿Una twig y otra twig creada henetworkingan cambios el uno del otro?

Los siguientes son mis observaciones:

  • Cuando realizo cambios sin escena en algunos files en una twig (sin ejecutar git add o git commit después) y luego creo una nueva twig mediante git checkout -b newbranch , la nueva twig también "henetworkingará" mis cambios de la twig original.

  • Cuando estoy en una sucursal y luego creo una nueva sucursal, y realizo cambios no planificados en algunos files de la nueva sucursal, y vuelvo a la sucursal original por git checkout originalbranch , la sucursal original también "henetworkingará" mis cambios de la nueva bifurcación. twig.

No estoy seguro si mis observaciones son correctas.

Si mis observaciones son correctas, no tienen sentido para mí, porque cuando creamos una twig de otra twig, generalmente queremos hacer un trabajo por separado sobre ellas. Si una twig henetworkinga los cambios de la otra twig, el trabajo que hacemos en una twig no se separará de la otra twig. Entonces, ¿por qué es la "inheritance"?

Entonces, ¿por qué es la "inheritance"?

Git no almacena el directory de trabajo actual (es decir, los cambios) en una twig, ni cada twig tiene su propio área de ensayo. Ambos son "globales" para el repository git. Entonces, cuando cambias a otra sucursal, Git tiene la opción de ignorar todos los cambios y eliminarlos o intentar aplicarlos en la twig a la que estás cambiando. Debido a que git no quiere eliminar su trabajo sin que usted lo solicite explícitamente, git lo mantiene de manera pnetworkingeterminada para retenerlo y volver a aplicarlo a la otra twig. Por supuesto, podrías cometerlos o esconderlos, luego tendrías la twig limpia después de pagar.

Git es un gráfico, en el sentido de la ciencia de la computación , lo que significa que los commits son nodos conectados entre sí. Las twigs son solo banderas en un nodo. Por ejemplo, supongamos que tienes 3 commits en master con los ID A, B y C.

 A - B - C [master] 

master es una bandera que apunta a la confirmación C. Cuando haces una nueva confirmación, D, se mueve con ella.

 A - B - C - D [master] 

Cuando crea una twig, como la function git branch feature , agrega una nueva bandera que apunta a la confirmación actual.

 A - B - C - D [master] [feature] 

Cuando te comprometes con la function, el maestro permanece en D.

 A - B - C - D [master] \ E [feature] 

Cuando te comprometes a dominar, la function permanece intacta.

 A - B - C - D - F [master] \ E [feature] 

Como puede ver, las twigs son en realidad twigs. el maestro y la function se denominan "cabezas de twig" porque apuntan a la cabeza de una twig. Puede tener varias cabezas de twigs apuntando a la misma confirmación.

la característica "henetworkinga", o más bien comparte, A, B, C y D con el patrón debido al layout del gráfico. No hay nada sobre A, B, C o D que los haga poseídos por una twig en particular. Solo son ancestros de las características y de los cabezales principales debido a la forma en que se presenta el gráfico.


Cuando realizo cambios sin escena en algunos files en una twig (sin ejecutar git add o git commit después) y luego creo una nueva twig mediante git checkout -b newbranch, la nueva twig también "henetworkingará" mis cambios de la twig original.

Cuando estoy en una sucursal y luego creo una nueva sucursal, y realizo cambios no planificados en algunos files de la nueva sucursal, y vuelvo a la sucursal original por git checkout originalbranch, la sucursal original también "henetworkingará" mis cambios de la nueva bifurcación. twig.

"Henetworkingado" es la palabra incorrecta. Es más como "dejado solo" porque las dos twigs apuntan al mismo compromiso.

Solo hay un solo directory de trabajo y solo un área de preparación. Cuando finaliza la compra de una nueva confirmación, Git debe cambiar el directory de trabajo para que coincida con la nueva confirmación y borrar el área de preparación. Si hay files modificados en el directory de trabajo o en el área de ensayo, se negará a rechazarlos.

 $ git checkout some-branch error: Your local changes to the following files would be overwritten by checkout: some-file Please commit your changes or stash them before you switch branches. Aborting 

Pero lo que describes es un caso especial. Como newbranch es nuevo, apunta a la misma confirmación que la antigua. Revisarlo no cambia los files en su directory de trabajo. Por lo tanto, los cambios en su directory de trabajo y área de ensayo se dejan en paz.

En ese caso especial, todo lo que hace el pago es cambiar qué cabeza de twig se moverá cuando se comprometa.