Uma das formas de publicar um branch local para um servidor de produção é usar o recurso de hooks nativo do git.
Vamos aqui listar os passos para configurar esse recurso e conseguir enviar as alteração para o servidor usando apenas um único comando na máquina local.
No lado de produção vamos acessar o servidor e criar uma pasta para abrigar os arquivos do projeto. Eu prefiro utilizar o nome do branch que está associado ao ambiente de produção (nesse caso será o main) mas você pode usar qualquer nome, inclusivo o nome do seu projeto.
ssh user@server
mkdir pasta-do-branch
Em seguida, vamos criar um ambiente git vazio para abrigar os comando de hook necessários.
git init --bare ~/projeto.git
Na pasta hooks desse ambiente criado (entre na pasta nome-do-projeto.git) vamos criar o arquivo post-receive e inserir o código nele por esse abaixo.
#!/bin/bash
TARGET="/pasta-do-branch"
GIT_DIR="/projeto.git"
BRANCH="main"
while read oldrev newrev ref
do
if [ "$ref" = "refs/heads/$BRANCH" ];
then
echo "Ref $ref received. Deploying ${BRANCH} branch to production..."
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f $BRANCH
fi
done
Esse arquivo, post-receive, deve ser marcado como executável.
chmod +x post-receive
Na máquina local vamos adicionar o branch remoto.
git remote add branch user@server:/path/project.git
Dessa forma, de agora em diante, para publicar o código do branch basta executar o comando abaixo.
git push projeto main
Para se aprofundar nos detalhes desse recurso, consulte a página desse link:
https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks