git eliminar file de escondite

Tengo un alijo con un montón de files.

Pero no puedo aplicar mi escondite debido a un file conflictivo. Identifiqué el file problemático en mi escondite y quiero eliminarlo.

¿Cómo puedo eliminar un solo file de un alijo sin destruir todo?

Un alijo es un compromiso (o realmente, dos o incluso a veces tres confirmaciones) y no puede cambiar un compromiso. La respuesta literal a su pregunta, entonces, es "usted no puede". Afortunadamente, no es necesario .

Usted dice que no puede aplicar su escondite debido a un file conflictivo. Pero puedes aplicarlo, solo obtienes un conflicto de fusión. Todo lo que necesitas hacer es resolver el conflicto de fusión.

Digamos que el conflicto está en el file README.txt , solo para que haya algo sobre lo que escribir aquí.

Si desea resolverlo manteniendo la versión en la sucursal, aplique el alijo, luego revise la versión en la sucursal para resolver el conflicto:

 git stash apply git checkout --ours -- README.txt # or git checkout HEAD -- README.txt 

Si quieres mantener la versión en escondite, extrae esa:

 git checkout --theirs -- README.txt # or git checkout stash -- README.txt 

O bien, utilice cualquier herramienta antigua de resolución de fusión (solo uso un editor de text), y luego "git add" el resultado.

Una vez que hayas terminado con el alijo, git stash drop "olvidará" las confirmaciones que componen el alijo. (No haga esto hasta que esté seguro de haber terminado con eso; es muy difícil recuperarlo después).

Hay una solución para esta situación:

  1. guarda tu escondite como un file de parche:

     $ git stash show -p > stash.patch 
  2. aplique este parche, omitiendo los conflictos (se le pedirá que resuelva los conflictos, solo omita los files que faltan):

     $ patch -p1 < stash.patch 

¡No olvides limpiar stash.patch después!

elimine el file requerido de su base de código local y luego empújelo para ocultarse. Los cambios se reflejarán y tus files se eliminarán del alijo.

    Intereting Posts