Как правильно деплоить laravel проект?
только не понимаю как тогда будет бд подтягиваться никак. зачем тебе боевые данные на локалке? Достаточно раз в неделю/месяц сделать восстановление из файла бэкапа с боевого сервера. У тебя не так часто меняются таблицы думаю.

Про структуру таблиц - есть миграции. Это в доках по ларавелу написано.

По гиту и композеру. Самое простое: 

Нужен локально гит. Под windows тут.  
Нужен композер (или архив composer.phar)
Инициализируешь на гитхабе репозиторий
сливаешь локально этот пустой репозиторий к себе на комп, делая в утилите gitbash
cd C:/govnocode
git clone https://github.com/youprofilename/reponame.git .
кидаешь в C:/govnocode  свой код, предварительно указав в gitignore то, что не должно быть в гите - файлы логов, файлы с изображениями пользователей, всякие мусорные файлы типа test.php и тд
делаешь 
git commit -a -m "govnocode"
git push origin master
говнокод твой улетит в репозиторий - это будет первый пуш кода в репозиторий 

на сервере делаешь новую боевую директорию, выполняешь
git clone https://github.com/youprofilename/reponame.git .
с гита все файлы прилетят тебе на хост

дома правишь файлы, делаешь 
git commit -a -m "govnocode version 2"
git pull origin master
git push origin master

изменения уйдут в репо. когда надо подтянуть на сервер. делаешь на сервере
git pull origin master

кмпозер запускаешь для подтягивания зависимостей, доки в сети есть, запускать нужно и на локальном пк и на серваке
Deployer вполне справится. Есть готовая обертка для Laravel: https://github.com/lorisleiva/laravel-deployer
Следующим шагом вешаем деплой на Github Actions на ветку stage скажем и наслаждаемся автоматической отправкой изменений при пуше в эту ветку.