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.