Executando o comando git clone [email protected]:whatever
cria um diretório na minha pasta atual com o nome que quer que seja, e deixa o conteúdo do repositório Git dentro dessa pasta:
/httpdocs/whatever/public
Meu problema é que eu preciso do conteúdo do repositório Git clonado no meu diretório atual para que ele apareça no local apropriado para o servidor web:
/httpdocs/public
Eu sei como mover os arquivos após I'clonar o repositório, mas isso parece quebrar o Git, e I'gostaria de ser capaz de atualizar apenas chamando git pull
. Como eu posso fazer isso?
Opção A:
git clone [email protected]:whatever folder-name
Ergo, para uso "aqui mesmo":
git clone [email protected]:whatever .
Opção B:
Mova a pasta .git' também. Note que a pasta
.git' está escondida na maioria dos exploradores de arquivos gráficos, então certifique-se de mostrar os arquivos ocultos.
mv /where/it/is/right/now/* /where/I/want/it/
mv /where/it/is/right/now/.* /where/I/want/it/
A primeira linha agarra todos os arquivos normais, a segunda linha agarra os arquivos de pontos. Também é possível fazê-lo em uma linha habilitando o dotglob (ou seja, shopt -s dotglob
), mas isso provavelmente é uma má solução se você estiver fazendo a pergunta que esta resposta responde.
Melhor ainda:
Mantenha sua cópia de trabalho em outro lugar, e crie uma ligação simbólica. Assim:
ln -s /where/it/is/right/now /the/path/I/want/to/use
Para ti, isto seria algo do género:
ln -sfn /opt/projectA/prod/public /httpdocs/public
Que facilmente poderia ser alterado para testar se você quisesse, ou seja..:
ln -sfn /opt/projectA/test/public /httpdocs/public
sem mover os ficheiros por aí. Adicionado -fn' caso alguém esteja copiando estas linhas (
-f' é força, `-n' evita algumas interações frequentemente indesejadas com links já existentes e inexistentes).
Se você só quer que funcione, use a Opção A, se alguém vai olhar para o que você fez, use a Opção C.
O exemplo que eu acho que muitas pessoas que fazem esta pergunta estão atrás é este. Se você está no diretório para o qual você quer que o conteúdo do repositório git seja despejado, execute:
git clone [email protected]:whatever .
O "." no final especifica a pasta atual como a pasta de checkout.
Quando você move os arquivos para onde você os quer, você também está movendo o diretório `.git'? Dependendo do seu sistema operacional e configuração, este diretório pode estar oculto.
Ele contém o repo e os arquivos de suporte, enquanto os arquivos de projeto que estão no seu diretório `/público' são apenas as versões no check-out atual de commit (ramo mestre por padrão).