> Faqs > Despliege Git falla por cambios realizados en composer.lock ¿Qué hacer?

Despliege Git falla por cambios realizados en composer.lock ¿Qué hacer?

Estoy haciendo un despliegue en el servidor remoto de una actualización de un sitio. El despliegue (deploy) lo hago mediante git. Con el típico "git pull". El caso es que me informa que hay un archivo llamado "composer.lock" que se ha modificado en local (En este contexto local se refiere al servidor remoto) y me sugiere que haga un commit o que haga un stash.

El error que recibo es el siguiente:

Updating 2e7e4c5a..e559d920
error: Your local changes to the following files would be overwritten by merge:
	composer.lock
Please commit your changes or stash them before you merge.
Aborting

Sobre las sugerencias que me ofrece, no sé cuál sería la más adecuada desde el punto de vista del archivo composer.lock.

  • Commit de los cambios: la verdad no lo veo necesario, pues yo realmente no he tocado nada en este archivo y con esta actualización las dependencias de composer cambian, lo que indica que voy a tener que hacer de nuevo el composer install y este archivo se va a tener que modificar de nuevo en ese proceso.
  • Stash: No entiendo muy bien qué es el stash, la verdad. Así que no sé qué tendría que hacer y si realmente eso es lo que quiero.

¿Alguien sugiere alguna otra posibilidad para solucionar esta situación con el composer.lock?

Responder la pregunta
Editar Hacer otra preguntaPreguntar

Respuestas

El comando stash sirve para hacer un guardado provisional de los cambios de un archivo. El caso más habitual es que estés trabajando en una rama y quieras pasarte a otra. Para ello tendrías que confirmar los cambios de tus archivos de la rama actual, porque si no no te deja cambiar de rama. Entonces, para evitar hacer un commit, puedes hacer un "git stash". Efectivamente, no creo que sea este tu caso.

Para el caso del composer.lock yo tampoco veo muy apropiado hacer el commit, además eso luego te puede dar problemas al hacer el "git pull" por necesidad de hacer un merge entre los contenidos de la rama que estás actualizando en el servidor remoto y los contenidos del composer.lock que has conformado. Te tocaría resolver un montón de conflictos sobre el archivo... y es un poco pesado.

Otra sugerencia, que es la que yo prefiero, es descartar los cambios realizados en el composer.lock. Y luego correr el comando composer update para instalar las dependencias nuevas de tu proyecto. Serían estos comandos de consola:

sudo git checkout -- composer.lock
sudo git pull
composer update

El composer update instalará las nuevas dependencias de tu archivo composer.json, pero evitará que se bajen (downgrade) las versiones actuales de las dependencias que tengas en el servidor. Creo que es lo mejor.

Camila
25 1 2 2