I want to reproduce this behaviour from Mercurial:
Com versões recentes, a configuração mencionada na mensagem de erro agora suporta um novo valor:
[receive]
denyCurrentBranch = updateInstead
Isso deve lhe dar exatamente o comportamento que você deseja.
I found tons of tutorials that do this with two separate directories on the server side
Como alternativa, você pode ainda usar a maioria desses tutoriais, empurrando para um branch diferente (ou seja, não para o que está sendo retirado, mas para algo como deploy
).
git push origin master:deploy
Agora você pode usar% (%) ou post-receive
de ganchos semelhantes (ou até mesmo iguais) como se estivesse empurrando para um repositório vazio. Por exemplo, o gancho pode executar post-update
ou até git merge --ff-only deploy
.