Probablemente puedes tener el mismo problema que yo: inicias un proyecto en Laravel en tu oficina y después quisieras ir a la PC de tu casa para continuar con el trabajo en un ambiente más distendido ¿cómo puedes clonar un proyecto de Laravel a otro equipo? Pues aquí te digo que es lo que yo hago.

Para empezar, te diré que utilizo los repositorios privados de bitbucket.org de Atlasian, pero esto mismo debe funcionar para github.

Clonar el repositorio a nuestro equipo

Hay que seleccionar un lugar en nuestro equipo donde vamos a poner el proyecto que nos vamos a traer del servidor git. En mi caso, como desarrollo utilizando Laragon, los proyectos los guardo en d:\laragon\www

Asumimos que ya tienes un repositorio en bitbucket.org, cuando seleccionas el repositorio donde está tu proyecto, aparece el comando git para copiar el repositorio, este comando lo deberás copiar en la raiz del lugar donde guardas tus proyectos localmente, en mi caso d:\laragon\www, así que se verá algo como esto:

d:\laragon\www> git clone https//usuario@bitbucket.org/usuario/repo.git

Cargar las dependencias del proyecto

Lo que nos trajimos es únicamente el código que conforma el proyecto, faltan todas las dependencias del proyecto que se cargan con composer. Primero cambiamos al directorio de nuestro proyecto (el directorio que se acaba de crear):

d:\...\> composer install

Así mismo, es necesario instalar las dependencias de NPM, ya sea con

d:\...\> npm install

Crear un archivo .env

El archivo .env generalmente no se copia, debido a cuestiones de seguridad, hay que recordar que en este archivo, se encuentran, entre otras muchas cosas, las cuentas y passwords para las bases de datos. La forma más sencillo de hacerlo, es copiar el archivo .env.example a .env, y modificar éste último:

d:\...\> copy .env.example .env

Lo siguiente es modificar el archivo para que quede acorde al ambiente que tenemos en el nuevo equipo, particularmente lo que se refiere a la conectividad con la base de datos.

Crear una base de datos para el proyecto

Este procedimiento será diferente dependiendo de la base de datos que tengas, en mi caso, que utilizo postgres, habrá que crear la base, el usuario y otorgarle permisos, y todo deberá ser consistente con la configuración hecha en el paso anterior.

¡Importante! Hay que considerar que Laravel está configurado para usar mySQL por defecto, no solo hay que cambiar el driver, servidor, base de datos, usuario y password, sino también el puerto, mySQL usa el 3306 y postgres el 5432, si olvidamos esto, obtendremos un error del tipo:

PDOException::("SQLSTATE[08006] [7] received invalid response to SSL negotiation: J")

Generar una llave para el proyecto

Laravel requiere que cada proyecto tenga una llave de encriptación, que se crea con:

d:\...\> php artisan key:generate

Migra y "siembra" la base de datos

Si desarrollaste tu proyecto con migraciones, ahora hay que generar la base de datos y si tienes sembradores (seeders), de una vez, esto se hace con:

d:\...\> php artisan migrate --seed

Con esto, se completa la clonación del proyecto de Laravel desde un repositorio git.