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
dzona
fonte
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.

Rodrigo
fonte
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 [email protected]:user/repo.git
git fetch origin
git checkout master
richo
fonte
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 [email protected]:user/repo.git
git pull origin master
hobbydev
fonte
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
Code-Apprentice
fonte
4

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

Sergey K.
fonte
3
por que não pode ser feito mais facilmente, como git clone [email protected]: 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