Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre os arquivos e o servidor BARE

Eu gostaria de saber como o servidor BARE consegue saber a existência do arquivo 'index.html' que ele não possui e colocar ele na pasta '/web'. Para mim não ficou claro durante a execução desses comandos.

post-receive

#!/bin/sh git --git-dir={caminho_da_pasta_do_servidor} --work-tree={caminho_da_pasta_web} checkout -f

Em nenhum momento é mencionado o arquivo mas mesmo assim ele consegue copiar para a work-tree, seria isso efetuado durante o recebimento desses arquivos? Durante o receive existe uma espécie de cérebro imaginário que saiba que arquivos estão sendo passados?

1 resposta
solução!

Opa Lucas, tudo certo?

O servidor BARE não possui uma cópia dos arquivos em si, mas ele possui o histórico de todas as alterações feitas no repositório. Quando um push é feito para o servidor BARE, o Git atualiza o estado da aplicação no diretório especificado pelo --work-tree, copiando os arquivos necessários para lá.

Durante o processo de recebimento dos arquivos no servidor BARE, o script post-receive é executado. Esse script é responsável por copiar o arquivo index.html para a pasta da aplicação. O parâmetro --work-tree indica o diretório onde os arquivos devem ser copiados.

Portanto, o servidor BARE não precisa "saber" quais arquivos estão sendo passados durante o receive. Ele apenas executa o comando checkout -f, que força a atualização do estado da aplicação, copiando os arquivos relevantes para a pasta da aplicação.

Fico à disposição.

Tenha um bom dia e bons estudos,