Tenho visto muitas pessoas usando git para implantar seus sites em um repositório não vazio e usando
$ git config receive.denycurrentbranch ignore
isso funciona bem, desde que você realmente não faça nenhuma atualização no próprio repo remoto. É realmente recomendado não trabalhar dessa maneira pelo pro git a menos que você perceba o que está fazendo, já que não é realmente como o git está configurado para funcionar.
Eu gosto desse método porque ele usa um
bare
repositório com uma árvore de trabalho de check-out, de forma que não há pasta .git em sua árvore de trabalho.Também é bom porque você pode fazer alterações na árvore de trabalho e também ter várias pessoas trabalhando no repo e o git funcionará normalmente.
Uma coisa a se notar é que se você quiser fazer alterações na árvore de trabalho do repositório remoto, você terá que
-fazer um arquivo na raiz de sua árvore de trabalho chamada .git
com o conteúdo.
gitdir: /path/to/your/repo.git
Que é bom porque você não tem de exportar GIT_DIR
cada vez
Ou
$ export GIT_DIR=path/to/your/repo.git
então
$ export GIT_WORK_TREE=path/to/your/workingtree
Sempre que você quiser fazer alterações na árvore de trabalho porque um bare
repositório tecnicamente não tem permissão para ter uma árvore de trabalho.
Se você usar a core.worktree
opção de definir a árvore de trabalho, ela irá falhar e o git irá dizer a você, core.bare
mas core.worktree
não fará sentido.
Por algum motivo, se você export GIT_WORK_TREE=path/to/your/repo.git
git não reclamar.
- @eviweb também tem um ótimo protocolo sobre como configurar
git
para jogar bem se você quiser trabalhar em um repo. aqui está o protocolo de @eviweb Usando GIT para gerenciar um sitenon-bare
Aproveitar.