/ / Siempre obtenga un error de pago con el submódulo en GitHub Desktop en Windows - git, github, git-submodules

Siempre obtenga un error de pago con el submódulo en GitHub Desktop en Windows - git, github, git-submodules

Tengo un repo con algunas ramas. En uno de ellos eliminé un directorio, que en realidad no pertenece al repositorio y lo agregué nuevamente como un submódulo de git.

Eso es lo que hago:

  1. Clonar el repositorio
  2. Cambie a la rama con el submódulo en GitHub Desktop
  3. git submodule init
  4. Hasta ahora puedo cambiar las ramas (entre las que tienen el submódulo y ningún submódulo sin ningún problema).
  5. git submodule update Para finalmente obtener el "contenido" del submódulo.

Así que todo está bien hasta que intento cambiar la rama en GitHub Desktop (a otra rama sin ningún submódulo de git). Si lo hago, recibo un error de pago que dice que tengo cambios no confirmados: GitHubCheckoutIssue

Error al finalizar la compra de la sucursal

Los siguientes archivos en tu trabajo El directorio se sobrescribiría con una verificación: [...] Por favor, confirme Tus cambios antes de que puedas cambiar de ramas.

Sin embargo, como dije no cambié nada, lo único que hice fue actualizar mis submódulos.

git status muestra que todo está bien:

$ git status
On branch patch-submodule
Your branch is up-to-date with "origin/patch-submodule".

nothing to commit, working directory clean

Cuando yo deinit Mis submódulos también puedo cambiar las ramas otra vez.

Entonces, ¿qué está mal aquí? ¿Y cómo puedo evitar este error o evitarlo?

Respuestas

0 para la respuesta № 1

Mencionó que eliminó un directorio del repositorio y, en su lugar, lo convirtió en un submódulo de git.

¿Se eliminó este directorio del directorio que intentaba verificar?

Lo que probablemente está sucediendo es que el submódulo contiene uno de los mismos archivos que contiene la rama que está intentando verificar.

Actualizas el submódulo, que coloca elarchivo (s) en su sistema de archivos. Cuando intenta verificar la rama, git intenta sobrescribir esa versión de submódulo del archivo con la versión que todavía está contenida en el repositorio principal en esa rama en particular. Esto podría / podría resultar en trabajo perdido, por lo que git arroja el error.

Haga una comprobación limpia de esa rama, luego elimine los archivos y confirme los cambios. Posiblemente agregue o combine los cambios de submódulo en esa rama también.


0 para la respuesta № 2

Gracias al soporte de GitHub finalmente obtuve una respuesta muy útil.

Especialmente me dirigieron a Código de terceros reemplazado con submódulos de git, ahora no puedo cambiar ramas que describe exactamente mi problema, excepto por una diferencia: usé la GUI de GitHub y no la consola.

Y allí está vinculado git-scm donde esto se explica muy bien:

Cambiar ramas con submódulos en ellas puedeTambién sé complicado. Si crea una nueva rama, agregue un submódulo allí y luego vuelva a una rama sin ese submódulo, todavía tiene el directorio de submódulo como un directorio sin seguimiento [.]

[...] Tienes que retirarlo o eliminarlo, en cuyo caso tienes que volver a clonarlo cuando vuelvas a cambiar, y puedes perder los cambios locales o ramas que no presionaste.

Esto es básicamente todo lo que significaron estos mensajes de error en mi caso.