tag - git eliminar el archivo del alijo
git tags best practices (4)
- Guarda tus cambios no comprometidos.
- Aplica tu alijo original.
- Descartar el archivo
- 4 Aplica el alijo que contiene tus cambios no comprometidos.
Tengo un alijo con un montón de archivos en él.
Pero no puedo aplicar mi alijo debido a un archivo conflictivo. He identificado el archivo problemático en mi alijo y quiero eliminarlo.
¿Cómo puedo eliminar un solo archivo de un alijo sin destruir todo?
Hay una solución para esta situación:
guarda tu alijo como un archivo de parche:
$ git stash show -p > stash.patch
aplique este parche, omitiendo los conflictos (se le pedirá que resuelva los conflictos, solo omita los archivos faltantes):
$ patch -p1 < stash.patch
¡No te olvides de limpiar el stash.patch
!
Un alijo es un compromiso (o realmente, dos o incluso a veces tres compromisos) y no se puede cambiar un compromiso. La respuesta literal a tu pregunta, entonces, es "no puedes". Afortunadamente, no es necesario .
Usted dice que no puede aplicar su alijo debido a un archivo 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 archivo README.txt
, solo para que haya algo sobre lo que escribir aquí.
Si desea resolverlo manteniendo la versión en la rama, aplique el alijo, luego revise la versión en la rama para resolver el conflicto:
git stash apply
git checkout --ours -- README.txt # or git checkout HEAD -- README.txt
Si desea mantener la versión en-stash, extraiga esa:
git checkout --theirs -- README.txt # or git checkout stash -- README.txt
O, use cualquier herramienta de resolución de fusión antigua (solo uso un editor de texto), y luego "git add" el resultado.
Una vez que haya terminado con el alijo, git stash drop
"olvidará" los compromisos que conforman el alijo. (No haga esto hasta que esté seguro de que haya terminado; es muy difícil recuperarlo después).
borre el archivo requerido de su base de código local y luego empújelo para esconderlo. Los cambios se reflejarán y sus archivos se eliminarán del alijo.