git clone без папки проекта

86

Я предоставил доступ к серверу и хочу клонировать репозиторий git в свою корневую папку. Но когда я сделаю git clone, он создаст мне папку с именем проекта, а моя папка проекта - это мой корень. У меня нет доступа к моей родительской папке, мой корень

/var/www/sites/mysite/

и когда я сделаю клонирование, структура папок будет

/var/www/sites/mysite/mysite
дзона
источник
2
убедитесь, что не доставляете .git на выбранный вами apache / веб-сервер.
mnagel
1
Отвечает ли это на ваш вопрос? Клонировать содержимое репозитория GitHub (без самой папки)
Вишрант

Ответы:

198

git cloneпринимает последний аргумент, который является целевым каталогом, по умолчанию это имя проекта, но вы можете его изменить. В вашем случае вы, вероятно, захотите просто .:

$ git clone origin-url .

Но обратите внимание, что из man git-clone:

Клонирование в существующий каталог разрешено только в том случае, если каталог пуст.

Родриго
источник
4
git clone @rodrigo ./heaven
a_m_dev 03
А как насчет клонирования на два уровня в глубину? У меня две папки поверх pom.xml?
Bionix1441
1
@ Bionix1441: Я не знаю о вашей структуре каталогов, но если вы на два уровня ниже, просто пишите git clone aaa/bbb. Если вы хотите подняться на два уровня выше, вы можете попробовать, git clone ..но это не сработает, потому что ваш родительский каталог никогда не бывает пустым.
Родриго
Структура следующая folder1\folder2\pom.xml, мне нужны только pom.xmlпапки и на том же уровне, что иpom.xml
Bionix1441
36

Вы также можете просто настроить новое репо, а затем удаленное отслеживание и ветку:

git init .
git remote add origin git@github.com:user/repo.git
git fetch origin
git checkout master
рико
источник
Это все равно не сработает, если в репо есть родительская папка
Hittz
Пришлось также настроить ветвь восходящего потока для соответствия: git branch --set-upstream-to=origin/master master Затем пришлось отправить локальные изменения в удаленную ветвь: git push --force это заменило старую удаленную ветку моей локальной обновленной копией.
Daniel ZA
8

Это также хорошо работает в Windows.

git init
git remote add origin git@github.com:user/repo.git
git pull origin master
хобби
источник
5

Помните, что репозиторий git - это просто структура каталогов, в которой вы его храните. Это означает, что когда вы клонируете репозиторий в неправильный каталог, вы можете просто переместить содержимое каталога в любое другое место, где захотите, и данные репозитория останутся нетронутыми. Так, например, вы можете запустить следующие команды из командной строки:

$ 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

Вы можете клонировать свой проект в подпапку, и они переместят все файлы, включая .gitпапку, в родительскую папку (ваш корень).

Сергей К.
источник
3
почему это не может быть сделано проще, например, git clone git@github.com: что угодно. \
dzona
может, увидишь ответ Родригоса. но я знаю, что репозиторий git - это просто набор файлов, которые можно свободно перемещать, этот ответ легко запомнить.
mnagel
git clone git @ github: me / name.git.
Салман Махмуд,