git clone sem pasta de projeto


86

Eu dei acesso ao servidor e desejo clonar o git repo em minha pasta raiz. Mas quando faço git clone, ele me cria uma pasta com o nome do projeto, e minha pasta do projeto é minha raiz. Eu não tenho acesso à minha pasta pai, minha raiz é

/var/www/sites/mysite/

e quando eu clonar a estrutura da pasta será

/var/www/sites/mysite/mysite

2
certifique-se de não entregar .git no apache / servidor da web de sua escolha.
mnagel de

Respostas:


198

git cloneaceita um último argumento que é o diretório de destino, é por padrão o nome do projeto, mas você pode alterá-lo. No seu caso, você provavelmente deseja simplesmente .:

$ git clone origin-url .

Mas observe que, de man git-clone:

A clonagem em um diretório existente só é permitida se o diretório estiver vazio.


4
git clone @rodrigo ./heaven
a_m_dev

E que tal clonar dois níveis de profundidade? Eu tenho duas pastas no topo do pom.xml?
Bionix1441

1
@ Bionix1441: Não sei sobre sua estrutura de diretório, mas se você está dois níveis abaixo apenas escrevendo git clone aaa/bbb. Se você quiser subir dois níveis, pode tentar, git clone ..mas não vai funcionar porque o diretório pai nunca está vazio.
rodrigo

A estrutura é a seguinte folder1\folder2\pom.xml, eu só preciso de pom.xmle as pastas no mesmo nível quepom.xml
Bionix1441

36

Você também pode simplesmente configurar um novo repo e, em seguida, o controle remoto e branch:

git init .
git remote add origin git@github.com:user/repo.git
git fetch origin
git checkout master

Isso ainda não funcionaria se o repo tivesse uma pasta pai
Hittz

Também tive que definir o branch upstream para corresponder: git branch --set-upstream-to=origin/master master Em seguida, tive que empurrar as alterações locais para o branch remoto: git push --force Isso substituiu o branch remoto antigo com minha cópia local atualizada.
Daniel ZA,

8

Isso está funcionando bem no Windows também.

git init
git remote add origin git@github.com:user/repo.git
git pull origin master

5

Lembre-se de que um repositório git é simplesmente a estrutura de diretório onde você o armazena. Isso significa que quando você clona um repositório no diretório errado, você pode simplesmente mover o conteúdo do diretório para qualquer outro lugar que desejar e os dados do repositório ainda estarão intactos. Portanto, por exemplo, você pode executar os seguintes comandos na linha de comando:

$ mv /var/www/sites/mysite/mysite/* /var/www/sites/mysite`
$ mv /var/www/sites/mysite/mysite/.* /var/www/sits/mysite`
$ rmdir /var/www/sites/mysite/mysite

4

Você pode clonar seu projeto em uma subpasta e mover todos os arquivos, incluindo a .gitpasta, para a pasta pai (sua raiz).


3
por que não pode ser feito mais facilmente, como git clone git@github.com: tanto faz. \
dzona

pode, veja a resposta de rodrigos. mas se você sabe que um repositório git é apenas um grupo de arquivos que podem ser movidos livremente, essa resposta é fácil de lembrar.
mnagel de

git clone git @ github: me / name.git.
Salman Mahmud
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.