A execução do comando git clone [email protected]:whatever
cria um diretório na minha pasta atual denominada whatever
e coloca o conteúdo do repositório Git nessa pasta:
/httpdocs/whatever/public
Meu problema é que preciso que o conteúdo do repositório Git seja clonado no meu diretório atual para que eles apareçam no local apropriado para o servidor da Web:
/httpdocs/public
Eu sei como mover os arquivos depois de clonar o repositório, mas isso parece quebrar o Git, e eu gostaria de poder atualizar apenas ligando git pull
. Como posso fazer isso?
git
repository
git-clone
David Smith
fonte
fonte
Respostas:
Opção A:
Ergo, para
right here
uso:Opção B:
Mova a
.git
pasta também. Observe que a.git
pasta está oculta na maioria dos exploradores gráficos de arquivos, portanto, certifique-se de mostrar os arquivos ocultos.A primeira linha pega todos os arquivos normais, a segunda linha pega arquivos de ponto. Também é possível fazê-lo em uma linha ativando o dotglob (ie
shopt -s dotglob
), mas essa provavelmente é uma solução ruim se você estiver fazendo a pergunta que esta resposta responde.Melhor ainda:
Mantenha sua cópia de trabalho em outro lugar e crie um link simbólico. Como isso:
Para o seu caso, isso seria algo como:
O que poderia ser facilmente alterado para testar se você quisesse, ou seja:
sem mover arquivos. Adicionado
-fn
no caso de alguém copiar essas linhas (-f
forçar,-n
evite algumas interações indesejadas com links já existentes e não existentes).Se você quiser que ele funcione, use a Opção A; se alguém quiser ver o que você fez, use a Opção C.
fonte
ln -s path/to/.git path/to/working/directory
O exemplo que acho que muitas pessoas estão fazendo é o seguinte. Se você estiver no diretório em que deseja despejar o conteúdo do repositório git, execute:
O "." no final especifica a pasta atual como a pasta de checkout.
fonte
ls -a
irá mostrar todos os arquivos, incluindo os ocultos.Vá para a pasta. Se a pasta estiver vazia, então:
outro
fonte
switch -t
on não é mostrado claramente na documentação do git checkout .Clonagem básica de repositório Git
Você clona um repositório com
Por exemplo, se você deseja clonar a biblioteca Git do Framework Aberto Drupal da Universidade de Stanford chamada open_framework, é possível fazer o seguinte:
Isso cria um diretório chamado open_framework (no local atual do sistema de arquivos), inicializa um diretório .git dentro dele, extrai todos os dados desse repositório e faz check-out de uma cópia de trabalho da versão mais recente. Se você for para o diretório open_framework recém-criado, verá os arquivos do projeto, prontos para serem trabalhados ou usados.
Clonando um Repositório em uma Pasta Local Específica
Se você deseja clonar o repositório em um diretório chamado algo diferente de open_framework, é possível especificar isso como a próxima opção da linha de comandos:
Esse comando faz a mesma coisa que o anterior, mas o diretório de destino é chamado mynewtheme.
O Git possui vários protocolos de transferência diferentes que você pode usar. O exemplo anterior usa o protocolo git: //, mas você também pode ver http (s): // ou user @ server: /path.git, que usa o protocolo de transferência SSH.
fonte
Para clonar o repositório git em uma pasta específica, você pode usar o
-C <path>
parâmetro, por exemploEmbora ainda crie uma
whatever
pasta em cima dela, para clonar o conteúdo do repositório no diretório atual, use a seguinte sintaxe:Observe que a clonagem em um diretório existente é permitida apenas quando o diretório está vazio .
Como você está clonando em uma pasta acessível ao público, considere separar seu repositório Git da sua árvore de trabalho usando
--separate-git-dir=<git dir>
ou excluindo a.git
pasta na configuração do servidor da web (por exemplo, no.htaccess
arquivo).fonte
Para clonar no Present Working Directory :
Para clonar para outro diretório :
Espero que ajude :)
fonte
./
no início do caminho para a pastaQuando você move os arquivos para onde deseja, também está movendo o
.git
diretório? Dependendo do sistema operacional e da configuração, esse diretório pode estar oculto.Ele contém o repositório e os arquivos de suporte, enquanto os arquivos de projeto que estão no seu
/public
diretório são apenas as versões no commit de check-out atualmente (ramificação mestre por padrão).fonte
Clone:
Clone o "ramo específico":
fonte
Se você deseja clonar na pasta atual, tente o seguinte:
fonte
Uso
Clone o repositório localizado no <repositório> na máquina local. O repositório original pode estar localizado no sistema de arquivos local ou em uma máquina remota acessível via HTTP ou SSH.
Clone o repositório localizado em <repository> na pasta chamada <directory> na máquina local.
Fonte: Configurando um Repositório
fonte
Certifique-se de remover o repositório .git se você estiver tentando fazer check-out no diretório atual.
rm -rf .git
entãogit clone https://github.com/symfony/symfony-sandbox.git
fonte
Aqui está como eu faria isso, mas criei um alias para fazer isso por mim.
Provavelmente existe uma maneira mais elegante de fazer isso, no entanto, achei que isso era mais fácil para mim.
Aqui está o alias que eu criei para acelerar as coisas. Eu fiz para o zsh, mas deve funcionar muito bem para o bash ou qualquer outra concha, como fish, xyzsh, fizsh e assim por diante.
Edite
~/.zshrc
,/.bashrc
etc. com o seu editor favorito (o meu é o Leafpad, então eu escreveria$ leafpad ~/.zshrc
).Minha preferência pessoal, no entanto, é criar um plugin zsh para acompanhar todos os meus aliases. Você pode criar um plugin pessoal para oh-my-zsh executando estes comandos:
Depois, adicione essas linhas ao seu arquivo alises.plugin em branco recém-criado:
(A partir daqui, substitua seu nome pelo meu.)
Então, para que os aliases funcionem, eles (junto com o zsh) precisam ser originados (ou como quer que seja chamado). Para fazer isso, dentro do seu documento de plug-in personalizado, adicione isto:
Salve seu plugin oh-my-zsh e execute
allsource
. Se isso não funcionar, basta executarsource $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh
. Isso carregará a fonte do plug-in, que permitirá que você use aallsource
partir de agora.Estou no processo de criar um repositório Git com todos os meus aliases. Fique à vontade para vê-los aqui: arquivos de pontos de Ev . Por favor, sinta-se à vontade para bifurcar e aperfeiçoá-los para atender às suas necessidades.
fonte
Se você estiver usando
ssh
paragit cloning
que você pode usar o comando a seguir.git -C path clone [email protected]:path_to_repo.git
por exemplo:
git -C /home/ubuntu/ clone [email protected]:kennethreitz/requests.git
puxaria o repositório git para orequests
seu/home/ubuntu/
caminho.fonte
Por alguma razão, essa sintaxe não se destaca:
git clone repo-url [folder]
Aqui, a pasta é um caminho opcional para a pasta local (que será um repositório local).
O Git
clone
tambémpull
codifica do repositório remoto para o repositório local. De fato, é verdade:fonte
Embora todas as respostas acima sejam boas, eu gostaria de propor um novo método em vez de usar o método de link simbólico no diretório público do html como BEST proposto na resposta aceita. Você precisa ter acesso às configurações de host virtual do servidor.
Trata-se de configurar o host virtual do seu servidor da web apontando diretamente para o diretório do repositório. No Apache, você pode fazê-lo como:
Aqui está um exemplo de um arquivo host virtual:
fonte
Você pode usar o seguinte comando git para clonar com o nome do diretório customizado
Nota: Você não precisa criar seu diretório custome, porque ele criará automaticamente
fonte
fonte
Em relação a esta linha do post original:
Eu sou capaz de fazer isso e não vejo nenhum problema até agora com minhas operações de adição, confirmação, envio e recebimento.
Essa abordagem é mencionada acima, mas não é dividida em etapas. Aqui estão as etapas que funcionam para mim:
A pasta existente em que você acabou de copiar os arquivos agora está pronta para interagir com o git.
fonte