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


86

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

/var/www/sites/mysite/

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

/var/www/sites/mysite/mysite

2
убедитесь, что не доставляете .git на выбранный вами apache / веб-сервер.
mnagel

Ответы:


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.
Салман Махмуд,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.