Não tenho certeza de onde meu repositório git está armazenando arquivos

2

Eu fiz um repositório git remoto com

mkdir /var/www/html/myproject.git
chmod 0770 /var/www/html/myproject.git
ln -s /var/www/html/myproject.git myproject.git
cd myproject.git
git --bare init

e conectado com sucesso a ele e clonado em minha própria máquina com

git clone [email protected]:myproject.git

em seguida, enviou alguns arquivos para ele

git push

que, quando tentado novamente, mostra que o repositório já está atualizado.

No entanto, estou procurando no servidor remoto e não consigo encontrar onde o git armazenou esses arquivos! Não está em /var/www/html/ nem /home/git e a única coisa que consegui encontrar é o arquivo HEAD que contém o id do commit inicial que eu fiz em /var/www/html/myproject.git/refs/heads/master . (Então eu sei que o empurrão funcionou)

Onde os arquivos poderiam estar?

    
por CJxD 07.11.2012 / 14:48

1 resposta

3

A resposta é que todos os arquivos são armazenados no diretório objects/pack como arquivos hash quando estão no repositório nulo. Você não pode obter diretamente os arquivos de lá.

Se alguém por acaso estava tentando fazer o que eu fiz e ter um conjunto de arquivos no servidor que são gerenciáveis pelo git (por exemplo, um servidor web), então você precisa fazer isso:

Faça um clone do repositório onde você quer que os arquivos estejam acessíveis (certifique-se de que o git possa escrever nele, especialmente o diretório .git)

mkdir /path/to/clone/repo
chmod -R 0775 /path/to/clone/repo
cd /path/to/clone/repo
git clone /path/to/bare/repo.git

Crie um novo gancho de pós-atualização no repositório bare contendo as seguintes linhas:

vi /path/to/bare/repo.git/hooks/post-update
#!/bin/sh
# Update the real-file cloned repository
unset GIT_DIR
cd /path/to/cloned/repo
git fetch
git reset --hard

Certifique-se de que é executável

chmod a+x /path/to/bare/repo.git/hooks/post-update

Envie um commit para o repositório nu e observe as linhas que começam com remote: para ver se algum erro ocorreu.

    
por 08.11.2012 / 01:54