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


85

Я надав доступ до сервера і хочу клонувати git repo у свою кореневу папку. Але коли я роблю git clone, це зробить мене папкою з назвою проекту, а моя папка проекту - це мій корінь. Я не маю доступу до батьківської папки, якою є моя root

/var/www/sites/mysite/

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

/var/www/sites/mysite/mysite

1
не переконайтесь, що не доставляєте .git у вибраний апаш / веб-сервер.
— mnagel

1
Це відповідає на ваше запитання? Клонувати вміст сховища GitHub (без самої папки)
— Вішрант

Відповіді:


193

git cloneприймає останній аргумент, який є цільовим каталогом, це за замовчуванням ім'я проекту, але ви можете його змінити. У вашому випадку ви, напевно, хочете просто .:

$ git clone origin-url .

Але зверніть увагу, що з man git-clone:

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


4
git clone @rodrigo ./heaven
— a_m_dev

А як щодо клонування двох рівнів углиб? У мене є дві папки поверх pom.xml?
— Bionix1441

1
@ Bionix1441: Я не знаю про вашу структуру каталогів, але якщо ви перебуваєте на двох рівнях, просто написавши git clone aaa/bbb. Якщо ви хочете пройти два рівні вище, ви можете спробувати, git clone ..але це не спрацює, оскільки ваш батьківський директор ніколи не порожній.
— rodrigo

Структура наступна folder1\folder2\pom.xml, мені потрібні лише pom.xmlпапки та папки на тому самому рівні, що іpom.xml
— Bionix1441

34

Ви також можете просто налаштувати нове репо, а потім відстежувати дистанційне управління та гілку:

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 це замінило стару віддалену гілку на мою локальну актуальну копію.
— Даніель З.А.

7

Це добре працює і в 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

це може, див. відповідь rodrigos. але я знаю, що git repo - це просто купа файлів, які можна вільно переміщувати, цю відповідь легко запам'ятати.
— mnagel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.