Git: ¿Es seguro realizar un rebase mientras el IDE principal está abierto?

CorePress2024-01-24  10

Soy alguien que a menudo cambia la base de las confirmaciones relacionadas con funciones para arreglarlas. Últimamente me ha preocupado si tener abierto el IDE de codificación principal puede afectar que algo salga mal en el proceso de rebase.

Por ejemplo, cuando hay una "pausa" dentro del proceso de rebase porque el usuario debe realizar alguna acción (por ejemplo, cambiar el nombre de una determinada confirmación), ¿al hacer clic en el archivo habitual "cambiado externamente, se actualizará?" ¿Las indicaciones que ofrecen algunos IDE (antes de completar el cambio de base) afectan el estado final del directorio de trabajo al realizar el cambio de base en lugar de mantener el editor cerrado?

Esta preocupación generalmente me hace preguntarme si debo cerrar el editor o no antes de cambiar la base de las confirmaciones que involucran cierta cantidad de cambios, y generalmente lo hago dependiendo de mis sentimientos en ese momento.e momento. Por supuesto, también estoy preocupado porque en el pasado temía que algunos cambios se hubieran perdido potencialmente debido a este tipo de escenario (aunque, en ese caso, también podría haber estropeado algo en cuanto a Git).

EDITAR: Ahora me doy cuenta de que cuando aparecen cuadros de diálogo similares a "Archivo modificado externamente, ¿actualizarlo?" causado por el cambio de base (para el caso), no debería causar ningún problema ya que el archivo ya cambió según lo deseado. Por tanto, lo que quiero saber ahora es:

P2) ¿Qué pasa si cuando se le solicita "Archivo cambiado externamente, actualícelo?" ¿Hace clic en No, para que el archivo revierta su contenido al anterior, y luego guarda ese archivo y continúa con el proceso de cambio de base? (por ejemplo, cerrar la pestaña de resumen interactivo activo en caso de cambiar el nombre de una confirmación, o performando un git rebase --continuar después de resolver algún conflicto, no necesariamente en el archivo modificado externamente). ¿Haría que el archivo terminara con contenidos diferentes después de completar la rebase en lugar de no haber vuelto a guardar manualmente los contenidos antiguos anulados?

3

¿Qué es el "IDE de codificación principal"?

- mate

28 de marzo de 2021 a las 0:27

Esto realmente depende de cuán inteligente/tonto/obstinado/obstinado sea su IDE y si está destinado a funcionar con Git. También depende de ciertas características del sistema operativo: en Windows, por ejemplo, un IDE podría mantener bloqueos obligatorios en los archivos e impedir que Git funcione. Sería un entorno de desarrollo integrado malo, obstinado y mal integrado con Git que probablemente no querrías usar. Pero estos IDE existen (o alguna vez existieron) y no dijiste qué IDE estás usando.

-torek

28 de marzo de 2021 a las 1:46

@matt Me refiero con el &"IDE principal" al editor utilizado para los archivos del repositorio, no confundir con el de rebase (generalmente son diferentes en mi caso), ya que la pestaña/ventana de rebase claramente nunca se vería afectada en la práctica

-Adrián

28 de marzo de 2021 a las 2:40

2

¿Entonces te niegas a revelar el nombre del editor?

- mate

28 de marzo de 2021 a las 2:42

No quería centrarme en ningún IDE específico, ya que hay varios que podría enumerar, o es posible que utilice uno nuevo en el futuro. Pero si es importante, los más conocidos que me interesarían más son Visual Studio 2019 (Windows) y VSCode en Windows y Linux.

-Adrián

28 de marzo de 2021 a las 2:51



------------------------------------

¿Es seguro rebase mientras el IDE principal está abierto?

Sí¹

Debido a que el IDE está abierto, a menos que esté guardando archivos sin conexiónractivamente o algo así, no afectará/cambiará los archivos en el disco.

¿Qué operaciones IDE están bien?

Cualquier cosa que no afecte la copia de trabajo, ejemplos:

Al hacer clic en Sí cuando se le solicite que el archivo haya cambiado externamente, ¿actualizarlo? Cargando/explorando archivos registro de git mostrar git git buscar etc. ¿Qué operaciones IDE son un problema?

Cualquier cosa que involuntariamente (en términos de git rebase en progreso) actualice archivos, o una operación de escritura de git, ejemplos:

Ignorar que un archivo abierto tiene contenido anterior al cambio de base y guardarlo de todos modos ¿Hacer clic en Sí cuando se le solicite guardar este archivo antes de salir? git checkout <branch> git checkout - archivo git comprometerse git fusionar git tirar etc.

Si desea, por ejemplo, utilizar su IDE para resolver un conflicto, está perfectamente bien, si la intención ess para actualizar un archivo durante una rebase; no hay problema en usar tu IDE para hacerlo :).

¹ - Como comentó Torek, hay o hubo IDE/editores que pueden ser problemáticos, pero eso sería excepcionalmente raro y no es la regla hoy en día.

4

Gracias por la respuesta clara, sin embargo, me di cuenta de algo y edité mi publicación con una pregunta más nueva, que es lo que debería haber preguntado en primera instancia y es muy importante, o directamente el punto clave aquí. ¿Podrías responderla? ¿O es lo que ya quieres decir con "Hacer clic en y"es cuando se le solicite guardar este archivo antes de salir"?

-Adrián

28/03/2021 a las 22:09

haces clic en No, ... y luego guardas ese archivo. Ya respondí esta pregunta :). Al hacer clic en "no" no hará nada, simplemente mantendrá igual la versión obsoleta en la memoria dentro del IDE. Si luego guarda el archivo, todo lo que esté en el IDE pasará a formar parte de los cambios que se están rebasando.

- AD7six

29 de marzo de 2021 a las 7:42

Dadas tus dudas, te sugiero que juegues cualquier escenario que te preocupe, teniendo en cuenta que casi siempre es posible deshacer un error de git. Entonces, por ejemplo. abra algunos archivos en su IDE y cree algunos archivos 'no deseados' ediciones, git checkout -b ejemplo, git rebase -I HEAD^10, guarde esas ediciones, complete la rebase y observe el resultado. git reflog también es muy útil para ver lo que has hecho y, por ejemplo, volver a donde estabas con git reset --hard sha-before-i-borked-that-rebase.

- ANUNCIO7seis

29 de marzo de 2021 a las 8:01

Supongo que con tu respuesta es suficiente, tiene mucho sentido. Sólo espero no haber cometido ese error en el pasado y recordarme que debo tener cuidado con eso.

-Adrián

30 de marzo de 2021 a las 8:10



------------------------------------

Tener tu IDE abierto mientras realizas una rebase de git no es un problema. No es necesario cerrarlo. Tu preocupación por hacer giPor otro lado, las operaciones t en su IDE mientras realiza una rebase de git son válidas. Te sugiero que lo hagas después. La mayoría de las cosas no causarán ningún problema, pero ¿por qué deberías forzarlo?

1

¿A qué tipo de operaciones te refieres? Tenga en cuenta que no estaba incluyendo en mi preocupación el caso de la resolución de conflictos entre secciones de código, provocado por el cambio de base (que puede suceder), ya que esa situación ya valida/espera edición y guardado (para resolver los conflictos) desde la perspectiva de Git. así que no creo que eso pueda afectarcualquier cosa que no sea resolver mal los conflictos

-Adrián

27/03/2021 a las 22:56



------------------------------------

Git solo usa los cambios que usted realizó cuando usa git. Agregue lo que usted (o su IDE, o cualquier programa) haga a sus archivos no afectará los cambios preparados (que puede confirmar).

Si su IDE modifica sus archivos mientras resuelve los conflictos de un rebase, es posible que tenga una versión incorrecta después de git add ... + git rebase --continue => Esto suena muy improbable, pero si no confías en tus programas, este podría ser el momento en que te afecten.

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare