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-branchEm seguida, vamos criar um ambiente git vazio para abrigar os comando de hook necessários.
git init --bare ~/projeto.gitNa 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
doneEsse arquivo, post-receive, deve ser marcado como executável.
chmod +x post-receiveNa máquina local vamos adicionar o branch remoto.
git remote add nome_do_branch user@server:/path/project.gitDessa forma, de agora em diante, para publicar o código do branch basta executar o comando abaixo.
git push projeto mainPara se aprofundar nos detalhes desse recurso, consulte a página desse link:
https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks