Pergunta

A execução do git clone git@github.com:whatever comando cria um diretório na minha pasta atual com o nome que quer, e descarta o conteúdo do repositório Git para essa pasta:

/httpdocs/whatever/public

O meu problema é que eu preciso o conteúdo do repositório Git clonado em meu diretório atual para que eles apareçam no local apropriado para o servidor web:

/httpdocs/public

Eu sei como mover os arquivos depois de eu ter clonado o repositório, mas isso parece quebrar Git, e eu gostaria de ser capaz de atualizar apenas chamando git pull. Como posso fazer isso?

Foi útil?

Solução

Opção A:

git clone git@github.com:whatever folder-name

Ergo, para uso right here:

git clone git@github.com:whatever .

Opção B:

Mover a pasta .git também. Note-se que a pasta .git está escondido na maioria dos exploradores de ficheiros gráficos, por isso certifique-se de mostrar 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 pega todos os arquivos normais, o segundo agarra linha dot-arquivos. É também possibe fazê-lo em uma linha, permitindo dotglob (ou seja shopt -s dotglob), mas que é provavelmente uma má solução se você está fazendo a pergunta esta resposta respostas.

Melhor ainda:

Mantenha a sua cópia de trabalho em outro lugar, e criar um link simbólico. Como esta:

ln -s /where/it/is/right/now /the/path/I/want/to/use

Para você caso, esta seria algo como:

ln -sfn /opt/projectA/prod/public /httpdocs/public

O que poderia facilmente ser alterado para teste se você queria, ou seja:.

ln -sfn /opt/projectA/test/public /httpdocs/public

sem mover arquivos ao redor. -fn adicionado no caso de alguém está copiando estas linhas (-f é força, -n evitar algumas interações, muitas vezes indesejados com links já e não-existentes).

Se você só quer que ele funcione, use a opção A, se alguém vai olhar para o que você tem feito, o uso Opção C.

Outras dicas

O exemplo que eu acho que um monte de gente fazendo esta pergunta está depois é este. Se você é em o diretório que você deseja que o conteúdo do repositório git despejado para, execute:

git clone git@github.com:whatever .

A "" no final especifica a pasta atual como a pasta de checkout.

Ir para a pasta .. Se a pasta está vazia, então:

git clone git@github.com:whatever .

else

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

Basic repositório Git Clonagem

Você clone de um repositório com

git clone [url]

Por exemplo, se você deseja clonar a biblioteca da Universidade de Stanford Drupal Abrir Framework Git chamado open_framework, você pode fazê-lo como este:

$ git clone git://github.com/SU-SWS/open_framework.git

Isso cria um diretório chamado open_framework (em sua localização atual sistema de arquivos local), inicializa um diretório .git dentro dela, puxa para baixo todos os dados para esse repositório, e obtém uma cópia de trabalho da versão mais recente. Se você vai para o diretório open_framework recém-criado, você verá os arquivos do projeto em lá, pronto para ser trabalhado ou usado.

Clonagem um repositório para um específico Pasta local

Se você deseja clonar o repositório em um diretório chamado algo diferente de open_framework, você pode especificar que, como a próxima opção de linha de comando:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

Esse comando faz a mesma coisa que o anterior, mas o diretório de destino é chamado mynewtheme.

Git tem um número de diferentes protocolos de transferência você pode usar. O exemplo anterior usa o protocolo git: //, mas você também pode ver http (s): // ou usuário @ servidor:. /Path.git, que usa o protocolo de transferência SSH

Quando você mover os arquivos para onde quiser, você também mover o diretório .git? Dependendo do seu sistema operacional e configuração, este diretório pode ser escondido.

Ele contém o repo e os arquivos de suporte, enquanto os arquivos de projeto que estão em seu diretório /public são apenas as versões no momento do check-out commit (branch master por padrão).

Clone: ??

git clone git@jittre.unfuddle.com:jittre/name.git

Clone o "ramo específico":

git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git

Para clone git repositório para uma pasta específica, você pode usar o parâmetro -C <path>, por exemplo.

git -C /httpdocs clone git@github.com:whatever

Embora ainda vai criar uma pasta whatever em cima dele, então para clonar o conteúdo do repositório no diretório atual, use a seguinte sintaxe:

git git@github.com:whatever .

Note-se que a clonagem em um diretório existente é única permitida quando o diretório é esvaziar .

Desde que você está clonagem para a pasta que seja acessível para o público, considere separar seu repositório Git a partir de sua árvore de trabalho usando --separate-git-dir=<git dir> ou excluir pasta .git na sua configuração de servidor web (por exemplo, no arquivo .htaccess).

Se você quiser clone para a pasta atual, você deve tentar este:

git clone https://github.com/example/example.git ./

Para clone de Present Diretório de Trabalho :

git clone https://github.com/link.git

Para clone de Outro Diretório :

git clone https://github.com/link.git ./Folder1/ pasta2

espero que ajude:)

Certifique-se de remover o repositório .git se você estiver tentando verificar coisa fora para o diretório atual.

rm -rf .git então git clone https://github.com/symfony/symfony-sandbox.git

Uso

git clone <repository>

Clone o repositório localizado no na máquina local. O repositório original pode ser localizado no sistema de arquivos local ou em um computador remoto acessível através de HTTP ou SSH.

git clone <repo> <directory>

Clone o repositório localizado em para a pasta chamada na máquina local.

Fonte: Configurando um repositório

Aqui está como eu faria isso, mas eu fiz um alias para fazer isso por mim.

$ cd ~Downloads/git; git clone https:git.foo/poo.git

Há provavelmente uma maneira mais elegante de fazer isso, no entanto, achamos que este seja mais fácil para mim.

Aqui está o alias eu criei para acelerar as coisas junto. Fiz para zsh, mas deve funcionar muito bem para bash ou qualquer outro shell como peixes, xyzsh, fizsh, e assim por diante.

Editar ~/.zshrc, /.bashrc, etc. com seu editor favorito (o meu é Leafpad, então eu iria escrever $ leafpad ~/.zshrc).

A minha preferência pessoal, no entanto, é fazer uma zsh plugin para manter o controle de todos os meus apelidos. Você pode criar um plugin pessoal para oh-meu-zsh, executando os seguintes comandos:

$ cd ~/.oh-my-zsh/
$ cd plugins/
$ mkdir your-aliases-folder-name; cd your-aliases-folder-name
     # In my case '~/.oh-my-zsh/plugins/ev-aliases/ev-aliases'
$ leafpad your-zsh-aliases.plugin.zsh
     # Again, in my case 'ev-aliases.plugin.zsh'

Em seguida, adicione estas linhas ao seu arquivo em branco alises.plugin recém-criado:

# Git aliases
alias gc="cd ~/Downloads/git; git clone "

(A partir daqui, substituir o seu nome com o meu.)

Em seguida, a fim de obter os aliases para o trabalho, eles (juntamente com zsh) tem que ser originado-in (ou seja lá o que é chamado). Para fazê-lo, dentro de seu documento plugin personalizado acrescentar o seguinte:

## Ev's Aliases

#### Remember to re-source zsh after making any changes with these commands:

#### These commands should also work, assuming ev-aliases have already been sourced before:

allsource="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh; clear"
sourceall="source $ZSH/oh-my-zsh.sh ; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh"
#### 

####################################

# git aliases

alias gc="cd ~/Downloads/git; git clone "
# alias gc="git clone "
# alias gc="cd /your/git/folder/or/whatever; git clone "

####################################

Salvar seu oh-meu-zsh plugin, e allsource prazo. Se isso não parece trabalho, basta executar source $ZSH/oh-my-zsh.sh; source /home/ev/.oh-my-zsh/plugins/ev-aliases/ev-aliases.plugin.zsh. Isso irá carregar a fonte plug-in que permitirá que você use allsource a partir de agora.


Eu estou no processo de fazer um repositório Git com todos os meus apelidos. Sinta-se livre para vê-los aqui: do EV dot-files . Sinta-se livre para forquilha e melhorá-las para atender às suas necessidades.

De alguma razão esta sintaxe não está de pé para fora:

git clone repo-url [folder]

Aqui pasta é um caminho opcional para a pasta local (que será um repositório local).

Git clone também pull código de repositório remoto para o repositório local. Na verdade, é verdade:

git clone repo-url  =  git init + git remote add origin repo-url + git pull

Se você estiver usando ssh para git cloning você pode usar o comando a seguir.

git -C path clone git@github.com:path_to_repo.git

por exemplo: git -C /home/ubuntu/ clone git@github.com:kennethreitz/requests.git iria puxar o repositório git para requests ao seu caminho /home/ubuntu/.

For Windows user 

1> Open command prompt.
2> Change the directory to destination folder (Where you want to store your project in local machine.)
3> Now go to project setting online(From where you want to clone)
4> Click on clone, and copy the clone command.
5> Now enter the same on cmd .

It will start cloning saving on the selected folder you given .

Vou recomendar que você siga o seguinte link:

https://help.github.com/en/articles/cloning-a-repository

Se você receber o seguinte erro ao git clone URL comando

fatal: unable to access 'URL': Could not resolve host: github.com

Em seguida, use o seguinte comando para corrigi-lo:

git config --global --unset https.proxy

No que se refere esta linha do post original:

"Eu sei como mover os arquivos depois de eu ter clonado o repo, mas esta parece quebrar git "

Eu sou capaz de fazer isso e eu não vejo qualquer problema até agora com o meu add, comprometer, empurrar, puxar operações.

Esta abordagem é dito acima, mas simplesmente não dividido em etapas. Aqui estão os passos que o trabalho para mim:

  1. clone do repo em qualquer pasta temporária fresco
  2. cd em que raiz pasta que acabou clonado localmente
  3. copiar todo o conteúdo da pasta, incluindo o diretório /.git - em qualquer existente pasta que você gosta; (Digamos, um projeto eclipse que você deseja mesclar com o seu repo)

O actual pasta que você acabou de copiar os arquivos para, agora está pronto para interagir com git.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top