Eu tive essa mesma necessidade. No meu caso, eu tinha uma pasta da web padrão criada por uma instalação do servidor da web. Para os fins desta ilustração, digamos que seja
/server/webroot
e o webroot contém outros arquivos e pastas padrão. Meu repositório apenas possui os arquivos específicos do site (html, javascript, CFML etc.)
Tudo que eu tinha que fazer era:
cd /server/webroot
git init
git pull [url to my repo.git]
Você precisa ter o cuidado de executar o git init na pasta de destino, porque se NÃO fizer isso, uma das duas coisas acontecerá:
- O pull git simplesmente falhará com uma mensagem sobre nenhum arquivo git, no meu caso:
fatal: Não é um repositório git (ou qualquer um dos diretórios pai): .git
- Se não é um lugar arquivo .git no caminho pai para a pasta de seu repo puxado será criada naquele pai que contém o arquivo .git. Isso aconteceu comigo e fiquei surpreso com isso ;-)
Isso NÃO perturbou nenhum dos arquivos "padrão" que tenho na minha pasta raiz da web, mas precisei adicioná-los ao arquivo .gitignore para impedir a adição inadvertida deles às confirmações subsequentes.
Essa parece ser uma maneira fácil de "clonar" em um diretório não vazio. Se você não deseja que os arquivos .git e .gitignore sejam criados pelo pull, basta excluí-los após o pull.
ls -a
vê um.git
diretório?